1. ホーム
  2. list

[解決済み] data.frame の行をリストにする

2022-04-27 11:08:23

質問

私はdata.frameを持っていて、これを行ごとのリストに変換したいのですが、つまり、各行がそれ自身のリスト要素に対応するようにしたいのです。言い換えれば、data.frame の行数と同じだけの長さのリストが欲しいのです。

これまでは、次のような方法でこの問題に取り組んできましたが、もっと良い方法がないかと考えていました。

xy.df <- data.frame(x = runif(10),  y = runif(10))

# pre-allocate a list and fill it with a loop
xy.list <- vector("list", nrow(xy.df))
for (i in 1:nrow(xy.df)) {
    xy.list[[i]] <- xy.df[i,]
}

解決方法は?

このように。

xy.list <- split(xy.df, seq(nrow(xy.df)))

のローネームが必要な場合は xy.df を出力リストの名前にすることができます。

xy.list <- setNames(split(xy.df, seq(nrow(xy.df))), rownames(xy.df))