2016-11-30 11 views
1

これは初心者の質問です。Rでは、df名を使用して複数のdfにNEW列を追加します。

現在、私は別の会社からのデータフレームのかなりの数を持って、a, b, c, d, e, f...

それらを呼び出すことができます私がしようとしています:

(1)値を持つ各データフレームに1列を追加するには、データに等しいですフレーム名(私は以前同社によると、そのCSVファイルから各DFという名前&を読んだことがある)

(2)一つの大きなデータフレームに

をそれらのすべてを組み合わせた結果リットルでしょうOOKに似て:

companies <- list(a, b, c, d, e) 
    companies_name <- list("a", "b", "c", "d", "e") 
    companies_all <- Map(cbind, companies, company <- companies_name) 
をが、これはリストのリストを返しました:

col1 col2 new_col 
1  1  1  a 
2  3  4  a 
... 
100 1  2  b 
101 4  5  b 
... 
992 3  4  f 
993 4  5  f 
... 

私が試してみました。これを達成するよりエレガントな方法はありますか?助けてください!

ありがとうございました!


これは多少類似した質問に対処しましたが、何とか私はコードを適用できませんでした。 r function/loop to add column and value to multiple dataframes

+0

'data.table'パッケージとその' idcol'引数から 'rbindlist'機能を見てみましょう。 – nicola

答えて

0
a <- data.frame(col1 = 1:4, col2 = 5:8) 
b <- data.frame(col1 = 11:14, col2 = 15:18) 

ldfs <- list(a = a, b = b) 
for (df_name in names(ldfs)) 
    ldfs[[df_name]][["new_col"]] <- df_name 
df <- do.call(rbind, ldfs) 
rownames(df) <- NULL 

出力:

> df 
    col1 col2 new_col 
1 1 5  a 
2 2 6  a 
3 3 7  a 
4 4 8  a 
5 11 15  b 
6 12 16  b 
7 13 17  b 
8 14 18  b 
関連する問題