如何使用循环形式的r重命名多个数据集中的列的子集

埃米莉·特兰布莱(Emilie Tremblay)

我知道这个问题以前曾被问过,但我无法让它对我有用,我发誓我尝试了多种方法来做到这一点,从循环文件到套用。我有一些表要替换第2列到第7列的S标头,这些标头现在采用这种格式:“ X1”,“ X2”,“ X3”,“ X4”,“ X5”,“ X6”,“ X7” ”,“ Phylum”,“ Class”,“ Order”,“ Family”,“ Genus”,“ Species”。

每个表没有相同数量的行或列。

我的31张桌子如下所示:

step4 <- list.files(pattern="*.coldrop.tsv")

另外,这是一个“子问题”,我从第二列开始进行操作,因为RAM不断添加行号(1,2,3,4,5,6 .... n)。如果有人可以在这里帮助我,那就太好了。我需要在所有这些“步骤4”表列表中进行操作。这是我想做的一些“样本”。

当我先尝试时,我选择了for file in loop选项:

colnames <- c("Kingdom", "Phylum", "Class", "Order", "Family", "Genus", "Species")

以下适用于单个文件

names(Omlo_run11_table.tsv.step1.tsv.step2.tsv.step3.tsv.coldrop.tsv)[2:8] <- c("Kingdom", "Phylum", "Class", "Order", "Family", "Genus", "Species")

i = 1
for(i in 1:length(step4)){
  names(step4[i])[2:8] <- c("Kingdom","Phylum","Class","Order","Family","Genus","Species") 

}

我得到这个:名称错误(step4 [i])[2:8] <-c(“ Kingdom”,“ Phylum”,“ Class”,“ Order”,“ names”属性[8]必须相同长度作为向量[1]

names(get(step4[i]))[names(get(step4[i])) == "X1","X2","X3","X4","X5","X6","X7"] <- c("Kingdom","Phylum","Class","Order","Family","Genus","Species")

我得到这个:名称(get(step4 [i]))[名称(get(step4 [i])))==“ X1”,“ X2”,“ X3”,错误:下标数目不正确

for(i in 1:length(step4)){
  nm <- paste0("step4[i]")
  tmp <- get(nm)
  colnames(tmp)[2:8] <- c("Kingdom", "Phylum", "Class", "Order", "Family", "Genus", "Species")
  assign(nm, tmp)
}

我得到这个:get(nm)中的错误:找不到对象'step4 [i]'

lapply (step4, function(df) { colnames(df)[2:length(step4)] <-colnames[1:length(step4)]-1)}

依此类推...我更喜欢个人类型的文件,但是我愿意接受选择。我遇到了带有setnames的解决方案,但也无法解决。.请有人帮我...

完美的

使用step4字符向量作为@Gregor注释,只需创建一个数据帧列表然后,迭代地重命名每个df的列,这些列都可以在一个lapply()匿名函数中处理另外,由于要使用制表符分隔的文件,因此需要通用read.table()功能(其中read.csv是逗号分隔文件的特殊包装):

step4 <- list.files(path = tsvfilepath, pattern=".*tsv$", full.names = TRUE)

dfList <- lapply(step4, function(i) {
        df <- read.table(i, sep="\t", quote="", header=TRUE, as.is=FALSE)
        names(df)[2:8] <- c("Kingdom","Phylum","Class","Order","Family","Genus","Species") 
        return(df)
})

使用姓氏导入TSV文件


该列表对于各种需求(例如单个数据帧或一个主数据帧)变得很有用。

对于单个df,请考虑setNames()分别命名每个名称并list2env()创建单独的环境对象。下面为每个df提供与其相应文件名相同的名称:

dfList <- setNames(dfList, step4)

list2env(dfList, envir=.GlobalEnv)

对于将所有数据帧附加在一起的一个大型主df,您将面临列数不完整的挑战。因此,请考虑使用第三方软件包来填充dfs中缺少的列:

library(plyr)
rbind.fill(dfList)

library(dplyr)
bind_rows(dfList)

library(data.table)    
rbindlist(dfList, fill=TRUE)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R - 使用嵌套循环重命名多个数据框中的多个列

来自分类Dev

重命名多个数据集R中的列

来自分类Dev

重命名ONE SAS库中多个数据集中的多个变量

来自分类Dev

如何创建函数或循环来重命名24个数据框的列?

来自分类Dev

R-在循环中创建多个数据集的子集

来自分类Dev

使用For循环在R中的列表中的每个数据集中创建一个列

来自分类Dev

使用for循环重命名熊猫数据框列

来自分类Dev

在多个数据框中使用重命名功能遍历大熊猫数据框的字典以重命名列

来自分类Dev

如何基于R中的另一个数据帧重命名数据帧的所有列?

来自分类Dev

如何基于R中的另一个数据帧重命名数据帧的所有列?

来自分类Dev

如何使用从特定列开始的for循环重命名列?

来自分类Dev

使用循环重命名多个文件

来自分类Dev

使用多个条件重命名 r 中的列

来自分类Dev

如何计算从数据子集中的列的均值

来自分类Dev

如何使用熊猫重命名重置索引上的多个列

来自分类Dev

如何使用R在整个数据集中精确匹配两个列值

来自分类Dev

使用 for 循环进行子集化并从该循环创建多个数据框。

来自分类Dev

重命名循环中的列,R

来自分类Dev

如何从多个数据帧中为for循环子集数据

来自分类Dev

如何从重命名的Elasticsearch群集中恢复数据?

来自分类Dev

如何用另一个数据框重命名pandas数据框列?

来自分类Dev

并排组合多个数据框并重命名它们

来自分类Dev

重命名R中的多个列

来自分类Dev

如何使用R在宽数据中自动重命名列

来自分类Dev

使用循环重命名 R 中的字段

来自分类Dev

如何根据列中的信息重命名行名的子集?

来自分类Dev

使用索引重命名多个列

来自分类Dev

R循环从多个数据框中选择特定的列

来自分类Dev

如何使用python重命名多个文件?

Related 相关文章

  1. 1

    R - 使用嵌套循环重命名多个数据框中的多个列

  2. 2

    重命名多个数据集R中的列

  3. 3

    重命名ONE SAS库中多个数据集中的多个变量

  4. 4

    如何创建函数或循环来重命名24个数据框的列?

  5. 5

    R-在循环中创建多个数据集的子集

  6. 6

    使用For循环在R中的列表中的每个数据集中创建一个列

  7. 7

    使用for循环重命名熊猫数据框列

  8. 8

    在多个数据框中使用重命名功能遍历大熊猫数据框的字典以重命名列

  9. 9

    如何基于R中的另一个数据帧重命名数据帧的所有列?

  10. 10

    如何基于R中的另一个数据帧重命名数据帧的所有列?

  11. 11

    如何使用从特定列开始的for循环重命名列?

  12. 12

    使用循环重命名多个文件

  13. 13

    使用多个条件重命名 r 中的列

  14. 14

    如何计算从数据子集中的列的均值

  15. 15

    如何使用熊猫重命名重置索引上的多个列

  16. 16

    如何使用R在整个数据集中精确匹配两个列值

  17. 17

    使用 for 循环进行子集化并从该循环创建多个数据框。

  18. 18

    重命名循环中的列,R

  19. 19

    如何从多个数据帧中为for循环子集数据

  20. 20

    如何从重命名的Elasticsearch群集中恢复数据?

  21. 21

    如何用另一个数据框重命名pandas数据框列?

  22. 22

    并排组合多个数据框并重命名它们

  23. 23

    重命名R中的多个列

  24. 24

    如何使用R在宽数据中自动重命名列

  25. 25

    使用循环重命名 R 中的字段

  26. 26

    如何根据列中的信息重命名行名的子集?

  27. 27

    使用索引重命名多个列

  28. 28

    R循环从多个数据框中选择特定的列

  29. 29

    如何使用python重命名多个文件?

热门标签

归档