Ответ 1
Используйте lapply
:
lapply(all.inc, function(x) split(x, x$pat))
У меня есть фрейм данных со следующей структурой:
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
, но так и не заработал.
Есть идеи?
Используйте lapply
:
lapply(all.inc, function(x) split(x, x$pat))
Если вы хотите разделить свой фрейм данных сразу, вы можете использовать
split(df, interaction(df$pat,df$inc))
Однако возвращаемое значение будет представлять собой один список фреймов данных, который немного отличается от того, что вы могли бы получить, разделив элементы списка.