使用合并从数据框列表生成唯一的数据框

时间:2015-01-13 15:20:35

标签: r list for-loop merge

我已经在某处读过如何将多个txt文件读入一个大列表,但是我无法使用列表的所有元素创建单个data.frame并更改列的名称,因此它们包含一个前缀将变量命名为。

我的情况与此处不完全相同: Import all txt files in folder, concatenate into data frame, use file names as variable in R?

我有23个txt文件。他们都有18个变量。有些人有1842个观察,有些有1830年。所有文本文件都有一个名为LABEL的列,它具有相同站点的唯一ID。此列非常适合进行合并:  merge(x,y, by="LABEL")

我想做以下事情:

  1. 将所有txt文件读入一个大清单
  2. 文件名具有指定“摘要统计”的后缀,例如我想要消除的“elevation_st”。我知道如何使用gsub来消除文件列表中的后缀。
  3. var.list <- list.files(path=getwd(), pattern="_st") ## list of text files data <- lapply(var.list, rad.table, sep=",", header=TRUE ## Create a big list with all data.frames, each for a variable names(data) <- gsub("_st", "", var.list) ## eliminate the suffix "_st"

    1. 附加前缀。我知道如何为一个data.frame做这个,但不是作为一个循环:(
    2. colnames(data$alt_channel) <- paste("alt_channel", colnames(alt_channel), sep="_")

      每当我尝试做一个循环时,我最终只将列表的最后一个元素称为“我”,我知道我做错了什么,但我不知道是什么:

      list <- as.vector(names(data) for (i in list) { colnames(i) <- paste("i", colnames(i), sep="_") }`

      我收到一条错误消息: “colnames中的错误&lt; - ( tmp ,value =”i_“): 尝试在少于两个维度的对象上设置“colnames”“

      我被困在这里,但我想这样做:

      1. 通过LABEL(merge?)
      2. 列将所有列合并为单个data.frame
      3. 我可以循环播放吗?
      4. 非常感谢

0 个答案:

没有答案