R语言学习——数据框编辑

2021-04-09  本文已影响0人  Xinli_5d16

数据框编辑

数据框编辑包括改行列名和内容。
> 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))
上一篇 下一篇

猜你喜欢

热点阅读