2016-02-16 4 views
5

リスト内の各データフレームについて、ローブ名に基づいてという列を作成したいとします。この質問has been asked beforeはSOですが、残念ながら答えは役に立ちません。だから、そこにそれを行う方法はありますか?期待データフレームリストの列としてのRownames

mylist <- list(structure(list(a = 1:10), .Names = "a", row.names = 1991:2000, class = "data.frame"), 
      structure(list(a = 1:10), .Names = "a", row.names = 1992:2001, class = "data.frame")) 

結果:

[[1]] 
     a year 
1991 1 1991 
1992 2 1992 
1993 3 1993 
1994 4 1994 
1995 5 1995 
1996 6 1996 
1997 7 1997 
1998 8 1998 
1999 9 1999 
2000 10 2000 

[[2]] 
     a year 
1992 1 1992 
1993 2 1993 
1994 3 1994 
1995 4 1995 
1996 5 1996 
1997 6 1997 
1998 7 1998 
1999 8 1999 
2000 9 2000 
2001 10 2001 
+0

なぜそれが役に立ちませんか?あなたは何の質問をしていますか? – franklin

答えて

2

我々はここでMap

Map(cbind, mylist, year= lapply(mylist, rownames)) 
+1

'Map' +' lapply'であなたのオリジナルの答えが効率が悪くなると思います。 –

+0

@docendodiscimus私はあなたが似たような回答を投稿したのを見たことがありませんでした。私はそれを削除します。 – akrun

4

を使用することができます別のオプションです:

lapply(mylist, function(df) transform(df, year = rownames(df))) 

楽しみのためだけに、あなたはまた、dplyrのを使用することができます3210関数:

lapply(mylist, dplyr::add_rownames, 'year') 
関連する問題