矩阵只允许一种数据类型,数据框的每一列只允许一种数据类型
一、数据框来源
代码语言:txt复制(1)用代码新建
代码语言:txt复制(2)由已有数据转换或处理得到
代码语言:txt复制(3)读取表格文件
代码语言:txt复制(4)R语言内置数据
二、数据框取子集
代码语言:txt复制用“$”符号,按列取子集
代码语言:txt复制 df1 <- data.frame(gene = paste0("gene",1:4),
代码语言:txt复制 change = rep(c("up","down"),each = 2),
代码语言:txt复制 score = c(5,3,-2,-4))
代码语言:txt复制 df1
代码语言:txt复制 gene change score
代码语言:txt复制 1 gene1 up 5
代码语言:txt复制 2 gene2 up 3
代码语言:txt复制 3 gene3 down -2
代码语言:txt复制 4 gene4 down -4
代码语言:txt复制 df1$score
代码语言:txt复制 [1] 5 3 -2 -4
代码语言:txt复制按坐标取子集,用“【】”,括号里填写行列数,先行后列
代码语言:txt复制 df1[2,2]#表示取第2行第2列
代码语言:txt复制 [1] "up"
代码语言:txt复制按逻辑值取,数据框按逻辑值取子集,TRUE对应的行/列留下,FALSE对应的行/列丢掉
代码语言:txt复制#筛选score > 0的行,筛选的是行,是score>0的行
代码语言:txt复制df1$score #先筛选df1数据框里score这一列
代码语言:txt复制[1] 5 3 -2 -4
代码语言:txt复制df1$score>0 #返回的是逻辑值
代码语言:txt复制[1] TRUE TRUE FALSE FALSE
代码语言:txt复制df1[df1$score > 0,] #中括号里表示score数值大于0的行,即TRUE的行。
gene change score
代码语言:txt复制1 gene1 up 5
代码语言:txt复制2 gene2 up 3
代码语言:txt复制取数据框最后1列#数据框由N列,最后一列就是第N列
代码语言:txt复制df1[,ncol(df1)]#最后一行用nrow代替
代码语言:txt复制[1] 5 3 -2 -4,
数据框修改:取值 赋值
修改行名和列名,其实就是修改向量,要修改全部行名就给全部赋值,如果要改一个列名就给取子集赋值。如:修改第二列的列名,就是修改【列名这个向量】的第二个元素
代码语言:txt复制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=)