0
data.framesのリストに識別子の列を追加したい(それらのリストを外す前に)。 新しい値の列をdata.framesのリストに設定しました
names = c('a', 'b')
d1 <- data.frame(y1=c(1,2,3),y2=c(4,5,6))
d2 <- data.frame(y1=c(3,2,1),y2=c(6,5,4))
my.list <- list(d1, d2)
lapply(seq_along(my.list), function(x) my.list[[x]]$names = names[[x]])
しかし、これは
の代わりに返します:私はlapply
を使用してみました
[[1]]
y1 y2 names
1 1 4 a
2 2 5 a
3 3 6 a
[[2]]
y1 y2 names
1 3 6 b
2 2 5 b
3 1 4 b
編集:私はindex(my.list)
を使用していた(zoo
からの)。 (データフレームのリストに名前を追加)あなたが並列に二つの配列を処理するためにMap
を使用することができ、ベースR
'index'は、ベースRの関数ではありません。使用しているパッケージの名前を含めてください。 ( 'seq_along(my.list)'で十分です)。 – lmo
fwiwの場合、 'dplyr :: bind_rows'と' data.table :: rbindlist'の両方に、リストからの名前を使ってid列を自動的に追加する機能があります。 – joran
変更されたdata.frameを返す必要があります。 'lapply(seq_along(my.list)、function(x){my.list [[x]] $ names = names [[x]]; my.list [[x]]})'が動作します。また、 'lapply(seq_along(my.list)、function(x)transform(my.list [[x]]、names = names [[x]]))'も参照してください。 – lmo