数据框编辑
数据框编辑包括改行列名和内容。
> df[3,3]<- 5 #把第三行和第三列改成5,类似坐标
> df
gene sam exp abc
1 gene1 sample1 12 23
2 gene2 sample2 23 15
3 gene3 sample3 5 37
> #改一整列
> df$exp<-c(12,23,50) # 把exp这一列的数据改为12,23,50.向量 取子集$或[]+赋值操作
> df
gene sam exp abc
1 gene1 sample1 12 23
2 gene2 sample2 23 15
3 gene3 sample3 50 37
> #新增一列
> df$abc <-c(23,15,37) #$后面不是df里面的列名,就会新增一列,$和[]不同时出现
> df
gene sam exp abc
1 gene1 sample1 12 23
2 gene2 sample2 23 15
3 gene3 sample3 50 37
修改行名和列名
改行名和列名(行名和列名的本质是向量)
> rownames(df) <- c("r1","r2","r3") #修改全部行名,函数输出的结果符合R语言的结构
> df
gene sam exp
r1 gene1 sample1 32
r2 gene2 sample2 34
r3 gene3 sample3 45
> #只修改某一行/列的名
> rownames(df)[2]="x" #修改第二行的行名就是修改向量里的第二个元素
> df
gene sam exp
r1 gene1 sample1 32
x gene2 sample2 34
r3 gene3 sample3 45
Tips:误操作怎么办?
代码运行后无法撤销,但是可以修改后重新运行!已赋值或修改的变量可以再次赋值,即覆盖。
> #误操作
> df$exq<-c(23,15,37)
> df
gene sam exp abc exq
1 gene1 sample1 12 23 23
2 gene2 sample2 23 15 15
3 gene3 sample3 50 37 37
> ## 解决办法,重新赋值。多次赋值,以最后一次为准。
> df <- data.frame(gene = paste0("gene",1:3),
+ sam = paste0("sample",1:3),
+ exp = c(32,34,45))
网友评论