5

行名に基づいてリスト内の各データフレームの列を作成したいと思います。この質問は SO で以前に尋ねられましたが、残念ながら答えは役に立ちません。それで、それを行う方法はありますか?

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
4

2 に答える 2

4

別のオプションは次のとおりです。

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

楽しみのために、dplyr のadd_rownames関数を使用することもできます。

lapply(mylist, dplyr::add_rownames, 'year')
于 2016-02-16T11:15:25.397 に答える
3

使用できますMap

Map(cbind, mylist, year= lapply(mylist, rownames))
于 2016-02-16T11:14:05.900 に答える