实验1 R的基本知识-1
# 实验1 R的基本知识-1
# 1.输出无理数e的(近似)值;
exp(1)
# 2.求 1+2+…+100 的和;
sum(1:100)
# 3.求 1+1/2+…+1/15 的(近似)值;
sum(1/(1:15))
# 4.生成规则序列s1:1,1,1,2,2,2,…,6,6,6;
s1 = rep(1:6,each=3);s1
# 5.生成规则序列s2,使1,2,3,4各重复5,2,1,3次;
s2=rep(1:4,c(5,2,1,3));s2
# 将七名学生的成绩98,100,86,90,83,92,55赋值给向量Score,并完成9-14题:
Score=c(98,100,86,90,83,92,55);Score
# 6.选出Score中>=90的分量,求其均值;
mean(Score[Score>=90])
#mean(Score [which(Score>=90)]) which---选出逻辑值为True的.
# 7.将Score中<60的分量改写为60;
#S = Score;S[S<60]=60;S 不需要建立副本
Score[Score<60]=60;Score
# 8.显示Score中最低的三个成绩(按升序排列);
#S_sort = sort(Score);S_sort[1:3]
sort(Score)[1:3]
# 9.输出Score的排名次序(成绩最高者排第1),保存至Rank;
Rank = rank(-Score) #rank---默认小的排第一
# 10.生成规则序列:st1708,…,st1714,保存至No;
num = 1708:1714;num
NO = paste("st",as.character(num),sep="");NO
# 11.将No,Score和Rank按列绑定并显示(提示:查询rbind及cbind命令的用法);
cbind(NO,Score,Rank)
实验2
# 1.用1~10与9~4,共16个数构造4阶方阵A,元素按行排列,然后完成题2-9:
A <- matrix(c(1:10,9:4), nrow = 4, ncol = 4,byrow = T);A #法一
#A <- t(array(c(1:10,9:4),dim = c(4,4))) #法二
# 2.将A转置,结果仍保留至A;
A <- t(A);A
# 3.显示A中由中间两行、两列构成的子块;
A[c(2,3),c(2,3)]
#A[c(-1,-4),c(-1,-4)]
# 4.计算A中各元素的平方和;
sum(A*A)
# 5.计算A各行的行均值;
rowMeans(A)
#apply(A, 1, mean) #对行求均值
# 6.统计A的各列中大于5的元素个数;
colSums(A>5)
# 7.生成矩阵B,它由A去掉第3列得到;
B <- A[,-3]
# 8.计算矩阵乘积AB。
A %*% B
# 9.计算A的特征值、特征向量,结果保存至myList;
#myList <- list(V=eigen(A)$vectors,X=eigen(A)$values);myList #V表示特征向量,X表示特征值
myList <- eigen(A);myList
# 10.查看myList的基本信息
str(myList)
# 11.提取myList中特征值,按降序排列;
sort(myList$values,decreasing = T)
# 12.提取myList中标准化特征向量,计算其元素平方和(应该等于1);
#colSums(myList$V * myList$V)
colSums(myList$vectors^2)
#colSums(myList$vectors^2) & c(1,1,1,1)
# 13.给myList新增子对象test,其内容为