在列表中的data.frames中创建新列,并使用特定的重复值填充它

时间:2017-03-15 21:58:51

标签: r list lapply cbind

这是我的列表示例(实际上我实际上有> 2,000 df):

 <a href="#test" pageScroll> test </a>

我需要为列表中的每个data.frame创建一个新列,并使用特定数字填充每个列。

df1 = read.table(text = 'a b
1 66
1 999
23 89', header = TRUE)

df2 = read.table(text = 'a b
99 61
32 99
83 19', header = TRUE)

lst = list(df1, df2)

所以我的输出应该是:

numbers = c(100, 200)

使用> lst [[1]] a b new_col 1 1 66 100 2 1 999 100 3 23 89 100 [[2]] a b new_col 1 99 61 200 2 32 99 200 3 83 19 200 我可以为每个data.frame创建一个新的空白列:

lapply

但我不知道如何使用我的数字向量填充列。

由于

1 个答案:

答案 0 :(得分:6)

为了同时迭代data.frames和数字向量列表,请使用Map()。例如

Map(cbind, lst, new_col=numbers)
# [[1]]
#    a   b new_col
# 1  1  66     100
# 2  1 999     100
# 3 23  89     100
# 
# [[2]]
#    a  b new_col
# 1 99 61     200
# 2 32 99     200
# 3 83 19     200