生信星球培训第九十一期

学习小组Day5笔记--小黄

2020-12-09  本文已影响0人  Kevin66_b50e

新手记录

1.表格在R语言中叫做数据框了
2.?read.table就是查看和read命令相关的帮助文档,类推的话,?+任何命令都是查看对应的帮助文档
3.数据类型有向量(Vector)、矩阵(Matrix)、数组(Array)、数据框(Dataframe)、列表(List)。加粗的是重点哦。

元素和向量

1.元素可以是数字或者字符串(与其他编程语言类似),一个元素组成的就叫标量,多个元素组成的就叫向量。同时也因为向量是有序排列的一组元素(此处的有序不一定非得是数学上的逻辑顺序,只要排列了就相当于给了一个特定顺序),所以可以把向量作为数据框的一列。
2.变量赋值昨天有说,今天新了解的是数据框也可以赋值给变量!神奇。
PS:试一下View(x),x是变量名,会有新发现。其实在environment里面单击也可以,但是实测Value好像不行,Data可以。
3.在向量中提取元素有两种方法。
一种是按位置:

x[4] #取第四个元素
x[-4] #取除了第四个以外的元素
x[2:4] #取第2~4个元素
x[2:7] #取第2~7个元素(没有了会报错)
x[-(2:4)] #取除了第2~4个元素
x[c(1,5)] #取第一个和第五个元素,个人理解是这个语法只能取一次,所以要完成的话,括号里只能是一个向量,重点在于“一个”

另一种是按值:

x[x==3]#等于3的元素,照葫芦画瓢,两个等号才是等于
x[x<0]#小于0的元素
x[x>1]#大于1的元素
x[x %in% c(1,2,5)]#存在于向量c(1,2,5)中的元素,这个可以有也可以没有,应该都不会报错【没有的话好像会报integer(0)】理解的话同上。

数据框

1.读取本地数据
先把示例数据放到工作目录下,否则会报错。然后调用read命令。read有很多后缀,决定了读取后的数据框格式,这里只是举一例。

read.table(file = "huahua.txt",sep = "\t",header=T)#读取数据,形成数据框
a<-read.table(file = "huahua.txt",sep = "\t",header=T)#把数据框赋值给变量a

sep指的是字段分隔符,每行的值都是由该字符分割的
header指的是数据第一行是否为数据框的第一行(T/F),默认的话基本就是F,这时R会自动给你一个数据框的行标题(V1,V2等等)

2.设置行名列名

X<-read.csv("doudou.txt")#数据框赋值给X
colnames(X)#查看列名
rownames(X)#查看行名,默认值的行名就是行号,1.2.3.4...
colnames(X)[1]<-"bioplanet"#更改第一列列名为bioplanet
X<-read.csv(file="huahua.txt",sep = "",header = T,row.names = 1)#row.names的意思是把第一列当做行名
#这时候我们改的bioplanet就不见了,因为它是原来的第一列的列名,而现在第一列的值都变成了行名,只剩了一列,即原来的第二列

3.数据框导出

write.table(X,file = "yu.txt",sep = ",",quote = F)#把变量X中的数据框导出为新文件,命名为yu.txt,分隔符改为逗号,字符串不加双引号(默认格式带双引号) 

4.变量保存与重新加载

save.image(file = "bioinfoplanet.RData")#保存当前所有变量
save(X,file = "test.RData")#保存X变量
load("test.RData")#加载X变量,之前保存在这个文件中

RData是R语言的数据保存格式,退出RStudio之后,就可以在工作目录中看到这几个新变量啦。

5.提取元素
因为现在的变量X是数据框,所以取到的都是数据框里的数据

X[1,2]#第一行第二列
X[2,1]#第二行第一列
X[2,]#第二行全部
X[,]#全部数据
X[,2]#第二列全部
X[1:2]#第一列到第二列
X[c(1,3)]#第一列和第三列
X$X1#这里X1是列名,并且支持自动补全,但是只能提取一列

6.直接使用数据框中的变量(我就是个只会引用的憨憨)

提取某两列作散点图:
(需要提示一下,这里的case和values是两个单纯的列名,没别的意思)

options(stringsAsFactors = T)
a <-data.frame(case=paste0("S",1:9),values=runif(9))
plot(a$case,a$values)

这种方法有个缺点:数据框名a在代码中重复出现
那么如何懒惰地实现:
将数据框名添加到搜索环境中:attach(a),作图时就只需输入列名(连$都不用了)。

attach(a)
plot(case,values)
detach(a)#做完后将a删除出搜索环境

局限性:两个以上数据框的列名有冲突时,同时attach会报错。

方法二没看懂就不弄了。

让我们看下效果: 上面的图.png

今天就这样啦~

上一篇下一篇

猜你喜欢

热点阅读