矩阵只允许一种数据类型,数据框的每一列只允许一种数据类型
一、数据框来源
(1)用代码新建
(2)由已有数据转换或处理得到
(3)读取表格文件
(4)R语言内置数据
二、数据框取子集
用“$”符号,按列取子集
df1 <- data.frame(gene = paste0("gene",1:4),
change = rep(c("up","down"),each = 2),
score = c(5,3,-2,-4))
df1
gene change score
1 gene1 up 5
2 gene2 up 3
3 gene3 down -2
4 gene4 down -4
df1$score
[1] 5 3 -2 -4
按坐标取子集,用“【】”,括号里填写行列数,先行后列
df1[2,2]#表示取第2行第2列
[1] "up"
按逻辑值取,数据框按逻辑值取子集,TRUE对应的行/列留下,FALSE对应的行/列丢掉
#筛选score > 0的行,筛选的是行,是score>0的行
df1$score #先筛选df1数据框里score这一列
[1] 5 3 -2 -4
df1$score>0 #返回的是逻辑值
[1] TRUE TRUE FALSE FALSE
df1[df1$score > 0,] #中括号里表示score数值大于0的行,即TRUE的行。
gene change score
1 gene1 up 5
2 gene2 up 3
取数据框最后1列#数据框由N列,最后一列就是第N列
df1[,ncol(df1)]#最后一行用nrow代替
[1] 5 3 -2 -4,
数据框修改:取值+赋值
修改行名和列名,其实就是修改向量,要修改全部行名就给全部赋值,如果要改一个列名就给取子集赋值。如:修改第二列的列名,就是修改【列名这个向量】的第二个元素
rownames(df1) <- c("r1","r2","r3","r4")#修改行名
df1 gene change score p.value
r1 gene1 up 5 0.01
r2 gene2 up 3 0.02
r3 gene3 down -2 0.07
r4 gene4 down -4 0.05
colnames(df1)2 <- "CHANGE"#修改一个列名
df1 gene CHANGE score p.value
r1 gene1 up 5 0.01
r2 gene2 up 3 0.02
r3 gene3 down -2 0.07
r4 gene4 down -4 0.05
两个数据框连接
merge(test1,test2,by=)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。