R: разделение элементов списка на подсписки

У меня есть фрейм данных со следующей структурой:

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, но так и не заработал.

Есть идеи?

Ответ 1

Используйте lapply:

lapply(all.inc, function(x) split(x, x$pat))

Ответ 2

Если вы хотите разделить свой фрейм данных сразу, вы можете использовать

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

Однако возвращаемое значение будет представлять собой один список фреймов данных, который немного отличается от того, что вы могли бы получить, разделив элементы списка.