R:将列表的元素拆分为子列表

Mar*_*kus 13 r list

我有以下结构的数据框:

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))
Run Code Online (Sandbox Code Playgroud)

df分为一系列元素:

all.inc = split(df, inc)
Run Code Online (Sandbox Code Playgroud)

现在我想将此列表的每个元素拆分为子列表.就像是:

all.pat = split(all.inc, pat)
Run Code Online (Sandbox Code Playgroud)

显然,这不起作用.我已经尝试过这些plyr功能lapply,但是没有让它发挥作用.

有任何想法吗?

A5C*_*2T1 10

用途lapply:

lapply(all.inc, function(x) split(x, x$pat))
Run Code Online (Sandbox Code Playgroud)


Ben*_*nes 7

如果您想一次性拆分数据框,可以使用

split(df, interaction(df$pat,df$inc))
Run Code Online (Sandbox Code Playgroud)

但是,返回的值将是单个数据框列表,这与通过拆分列表元素所获得的略有不同.