R语言练习题
第一题
(1)写出元素为3, -1.5, 3E-8的向量。
a1 <- c(3,-1.5,3*10^-8)
a1
(2)写出从-1开始每次增加5,长度为10的向量。(3)写出c(0,1,2)重复10次的向量。
a2 <- seq(-1,by=5,length=10)
a2
第二题
创建向量x=rnorm(100,2,1),计算其和、平均值及方差
x <- rnorm(100,2,1)
x
mean(x)
sum(x)
var(x)
(1)用tail查看其最后10个元素。
b1 <- tail(x,10)
b1
(2)找出其元素大于等于0小于1的数。(3)找出小于o的元素的下标。
b2 <- x[x<1&x>=0]
b2
which(x<0)
第三题
查看逻辑操作&和 &&的帮助文件
(1)两者的区别是什么?
从概念上讲,两者都属于逻辑运算符,但是用起来还是有一些区别,大致的区别就是:
- ==&&==是将两个操作对象做逻辑运算,无论操作对象是向量还是标量,反沪指都是一个逻辑值。
- ==&==是将两个对象按位比较,其返回值的长度于对象是标量还是向量有关。
(2)各自运行一个example。
c1 <- c(1,0,1,0)
c2 <- c(1,0,0,1)
c3 <- c(0,0,1,0)
c1&&c2
c1&c2
c1&&c3
c1&c3
第四题
对以下函数,阅读help文件,并试运行其中的2个example
(1)matrix
E <- matrix(seq(1,by=2,length=12),ncol = 4,byrow = TRUE)
E
F <- matrix(seq(1,by=2,length=12),ncol = 4,byrow = FALSE)
F
(2)read.table
其中两个重要参数comment和header分别代表什么
- header: 逻辑值。用于指出文件的第一行是否为数据变量的名字。缺省情况下,由文件的格式来确定此值。如果header设置为TRUE,则要求第一行要比数据列的数量少一列
- comment: 字符型。包含单个字符或空字符的向量。代表注释字符的开始字符。可以使用""关闭注释
(3)file.choose
试用read.table和file.choose读入一个表格文件
画一个堆叠条形图
a <- read.table("sales.csv",header = T,row.names = 1,sep=',')
b <- cbind(a[,1]/sum(a[,1]),a[,2]/sum(a[,2]),a[,3]/sum(a[,3]))
colnames(b) <- colnames(a)
rownames(b) <- rownames(a)
barplot(b,horiz = T,col=c("red","orange","yellow","green","blue"))
label <- c("Seattle","London","Tokyo","Berlin","Mumbai")
legend(0,4.15,label,horiz = T,title = "City",title.col = 'black'
,text.col = "grey",text.font = 3,box.col = "white",cex=0.6,
pch=15,col=c("red","orange","yellow","green","blue"),xpd=T,bty='n')
data1 <- file.choose()
第五题
生成以下矩阵A(不要用c),并用apply命令按行求和
E <- matrix(seq(1,by=2,length=12),ncol = 4,byrow = TRUE)
E
apply(E,1,sum)