2017-03-15 81 views
1

這裏我的列表的例子來填充它(其實,我在現實一個> 2000 DF):列表中創建data.frames新柱,並用特定的重複值

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) 

我需要創建列表中每個data.frame的新列,並使用特定數字填充每列。

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 

隨着lapply我能夠爲每個data.frame一個新的空白欄:

lst = lapply(lst, cbind, new_col = '') 

> lst 
[[1]] 
    a b new_col 
1 1 66   
2 1 999   
3 23 89   

[[2]] 
    a b new_col 
1 99 61   
2 32 99   
3 83 19 

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

感謝

+0

請向您的可重現列表和向量詢問一個新問題,而不是更新此問題。編輯這個可能會使正確的答案無效。 –

+0

嗨新的列表基本上和舊的一樣。爲什麼我得到這個錯誤? – aaaaa

+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 
+0

謝謝@MrFlick!輝煌! :-) – aaaaa

相關問題