今天学习向量和数据框,之前有看过,但学习的不够系统,今天认真学习
- 元素、向量、标量
元素:可以是数字或者字符串
标量:一个元素组成的变量
向量:多个元素组成的变量
再把这些向量进行赋值,你想赋值给谁都行
进入练习
- 赋值
x<- rep(1:3,times=2) #1-3 重复2次
x
这便是返回的结果,包含有1 2 3 1 2 3这些元素的向量现在赋值给了x
- 从向量中提取元素
x[4] #x第4个元素
x[-4]#排除法,除了第4个元素之外剩余的元素
x[2:4]#第2到4个元素
x[-(2:4)]#除了第2-4个元素
x[c(1,5)] #第1个和第5个元素
如果是数据框的提取那就要分行和列,前面是行,后面是列
- 读取文件
读取文件以及赋值是R最常用的了
学习内容是在文件夹中先建立txt,然后读入,这里可以在R中创建数据框
X1 <- c("A","B","C","D","E")
X2 <- c("1","","","3","")
X <- data.frame(X1,X2)
- 查看数据
colnames(X) #查看列名
rownames(X) #查看行名
colnames(X)[1]<-"bioplanet"#第一列命名
.
- 变量的保存与重新加载
save.image(file="bioinfoplanet.RData")#保存当前所有变量
save(X,file="test.RData")#保存其中一个变量
load("test.RData")#再次使用RData时的加载命令
保存完会发现多了两个文件
- 数据框提取
X[1,1]#第1行第1列
X[1,]#第1行
X[,1]#第1列
X[1] #也是第1列
X[1:2]#第1列到第2列
X[c(1,2)]#第1列和第2列,当然如果这里数据多,我就可以只选择想要留下来的列数,例如5和10列
X$bioplanet#新知识点
- 直接使用数据框中的变量
a <-data.frame(case=paste("S",1:50),values=runif(50))#runif()函数用于生成从0到1区间范围内的服从正态分布的随机数
plot(a$case,a$values)
我们想要画图,就发现这种方法数据框名a在代码中重复出现(当然,对于菜鸟而言还没有拥有可以懒惰的能力)懒惰才是第一生产力,于是乎花花就提供了懒惰的方法
1.将数据框名添加到搜索环境中:attach(a)
attach(a)
plot(case,values)
做完后将a删除出搜索环境 detach(a),要注意设置的变量就要在attach(a) 和detach(a)之间才能搜索到
2.还可以使用with函数添加数据框到环境变量,可以在with函数内进行操作,但是这样就会使得里面设置的变量在外部无法访问,所以就引入<<,意思是作为全局变量,也就是出了大括号仍有效。
with(a,{
plot(case,values)
x<<-summary(values) #求和并赋值给x,<<的意思是作为全局变量,也就是出了大括号仍有效。
})
x #运行完后打印x
课后思考题
- save(X,file="test.RData")这句代码如果报错X not found,是为什么,应该怎么解决
说明在前面中并没有赋值给X,有可能是没有赋值,或者是赋值到其他上面去了,R是区分大小写的,查看是否赋值给x了