将列添加到列表中的每个数据框

时间:2014-04-07 00:08:44

标签: r

我的问题是双重的..

  1. 我有一个数据框列表,在R中使用lapply,我想在列表中的每个数据框中添加一列。
  2. 如果可能,添加的列实际上应该从列表中按顺序获取值。我有一个与数据框列表长度相同的列表,该列表中的每个值都应该是添加的列值。
  3. 我这样做的原因是因为我导入的每个数据集的文件名都有日期信息,例如文件名包含Jun12_2003。所以我想导入每个数据集,然后为年份和日期分配一个列,从文件名中获取信息(到目前为止使用regexp执行该部分)。

    感谢您的帮助!

1 个答案:

答案 0 :(得分:27)

使用Map。它是Ari建议的mapply(..., SIMPLIFY = FALSE)的缩写。

df1 <- data.frame(x = runif(3), y = runif(3))
df2 <- data.frame(x = runif(3), y = runif(3))
dfs <- list(df1, df2)
years <- list(2013, 2014)

Map(cbind, dfs, year = years)
# [[1]]
#           x         y year
# 1 0.8843945 0.6285246 2013
# 2 0.8400041 0.1369520 2013
# 3 0.4398870 0.4660476 2013
# 
# [[2]]
#           x         y year
# 1 0.4153315 0.5831114 2014
# 2 0.9685105 0.2398060 2014
# 3 0.9507591 0.7585670 2014
相关问题