R - применить функцию к фреймам данных последовательно
У меня есть dataframe mydf, и я разделил его, чтобы получить количество кадров данных, таких как mydf$'1' mydf$'2'...mydf$'n'
, Я хочу применить свою функцию к этим фреймам данных, чтобы получить результат как
resultdf1 <- myfunc(mydf$'1')
resultdf2 <- myfunc(mydf$'2')
.....
resultdfn <- myfunc(mydf$'n')
и так далее... Так как от разделения есть приблизительно 35 кадров данных. Как я могу уменьшить свои усилия без написания вручную для каждого имени кадра и результата.
Я пытался ласково, но не получилось правильно. Любая помощь будет оценена.
Спасибо
1 ответ
Призвание split
на фрейме данных должен дать вам список меньших фреймов данных. Так что, возможно, было бы просто иметь смысл позвонить lapply
в этом разделенном списке, например
mydf.split <- split(mydf, mydf$col)
list.result <- lapply(mydf.split, function(x) { /* do something */ })
Выше приведен другой список, в котором каждый узел содержит результат вашей функции. Если вы хотите получить обратно вектор, вы можете использовать sapply
, Например, если вы хотите количество строк в каждом из ваших разделенных фреймов данных, вы можете сделать
mydf.counts <- sapply(mydf.split, function(x) nrow(x))