Подтвердить что ты не робот

Разделите блок данных с использованием двух столбцов данных и примените общее преобразование в списке результирующих фреймов данных

Я хочу разбить большой фрейм данных в список данных в соответствии со значениями в двух столбцах. Затем я хочу применить общее преобразование данных для всех фреймов данных (преобразование лаг) в результирующий список. Я знаю команду split, но могу заставить ее работать только с одним столбцом данных.

4b9b3361

Ответ 1

Вам нужно указать все факторы, которые вы хотите разбить в списке, например:

split(mtcars,list(mtcars$cyl,mtcars$gear))

Затем вы можете использовать lapply для этого, чтобы сделать то, что еще вы хотите сделать.

Ответ 2

как насчет этого:

 library(plyr)
 ddply(df, .(category1, category2), summarize, value1 = lag(value1), value2=lag(value2))

кажется отличным заданием для пакета plyr и ddply(). Если есть все еще открытые вопросы, пожалуйста, предоставьте некоторые примеры данных. Разделение должно работать и на нескольких столбцах:

df<- data.frame(value=rnorm(100), class1=factor(rep(c('a','b'), each=50)), class2=factor(rep(c('1','2'), 50)))
g <- c(factor(df$class1), factor(df$class2))
split(df$value, g)