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))

但是,返回的值将是一个数据框列表,这与拆分列表元素得到的结果略有不同。

于 2012-09-14T09:00:49.790 回答