matrix :矩阵,整个表只允许一种数据类型
data.frame:数据框,每一列只允许一种数据类型
可以根据生成的函数或者用class或者is族函数判断。
可由代码新建、已有数据转换或处理、读取表格文件、R语言内置数据
内置数据多用于新手练习,eg:iris、volcano、letters、LETTERS
##A. 数据框属性
dim(df1) 数据框属性,返回行数列数
nrow(df1) 数据框行数
ncol(df1) 数据框列数
rownames(df1) 数据框行名
colnames(df1) 数据框列名
##B. 数据框取子集
df1$gene #删掉“gene”,按tab键,可以提示出表格的全部列名
小技巧:在今后把 df1$gene 看作一个整体,是一个向量,这样不容易产生困惑。
df1【3,2】 取出第3行第2列
df1【3,】 取出第3行
df1【,2】 取出第2列(但不常用,不如$,$可以直接看出列名)
df1【c(1,3),1:2】 取出第1,第3行的第1和第2列
df1【,"gene"】
df1【,c('gene','change')】
df1【df1$score>0,】
如何取数据框的最后一列?
ncol(df1) 知道了行数就方便取最后一列:df1【,ncol(df1)】 这样子方便代码复用。
如何取数据框除了最后一列以外的其他列?
df1【,-ncol(df1)】
“-”是针对数据使用,“!”是针对逻辑值使用
df1【3,3】 <- 5
df1$score <- c(12,23,50,2)
rownames(df1) = c("r1","r2","r3","r4") 修改行名
colnames(df1)【2】 = "CHANGE" 将第二列的名字改为CHANGE
merge(test1,test2,by="name") 将test1和test2a按照name连接。
merge(test1,test3,by.x = "name",by.y = "NAME")
当test1和test2的列名不一样是,按照上述公式连接。
all.x = all, all.y = all,“不放弃每一个人”,不舍弃无法合并的内容
m = matrix(1:9, nrow = 3)
colnames(m) = c("a","b","c") #加列名
rownames(m) = c("q","w","e") #加行名
转置:t(m) 行变列,列变行
转换:as.data.frame(m) 转换为数据框
q = list(m1 = matrix(1:9, nrow = 3),
m2 = matrix(2:9, nrow = 2))
如果有m1、m2这些元素名字,可以用$取子集;
如果没有m1、m2这些元素名字,用双括号取子集。 q【【2】】
names(m1)
names(test1)
names 函数不仅仅能对列表使用,还可以对数据框使用(返回列名)。
也可以对向量使用:
names(scores) = c("a","b","c")
names(scores)【scores>60】
rm(l) 删除一个变量
rm(df1,m) 删除多个变量
rm(list = ls()) 删除全部变量
Ctrl+ L 清空控制台
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。