17

次の構造のデータフレームがあります。

pat <- c(rep(1,50), rep(2,50), rep(3,50))
inc <- rep(c(rep(1,5), rep(2,5), rep(3,5), rep(4,5), rep(5,5),
             rep(6,5), rep(7,5), rep(8,5), rep(9,5), rep(10,5)), 3)
df <- data.frame(cbind(pat, inc))

df は要素のリストに分割されます。

all.inc = split(df, inc)

次に、このリストの各要素をサブリストに分割します。何かのようなもの:

all.pat = split(all.inc, pat)

これは明らかに機能しません。私はすでにplyr関数とを試しましたlapplyが、うまくいきませんでした。

何か案は?

4

2 に答える 2

13

使用lapply:

lapply(all.inc, function(x) split(x, x$pat))
于 2012-09-14T08:55:12.033 に答える
8

データフレームを一度に分割したい場合は、次を使用できます

split(df, interaction(df$pat,df$inc))

ただし、返される値はデータ フレームの 1 つのリストであり、リスト要素を分割して得られるものとは少し異なります。

于 2012-09-14T09:00:49.790 に答える