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))
Другие вопросы по тегам