Я хочу применить функцию к нескольким фреймам данных. На вопрос был дан ответ несколько раз на Stackoverflow, например. Apply a function to each data frame или applying a function for a list of dataframes. Однако у меня есть немного другая (новичка) проблема при создании списка фреймов данных, которые могут передавать данные в функцию.Создание «списка» данных, которые могут быть переданы функции
Я создал функцию
drawmyplot <- function(x){
variable <-x
aggregate(variable$c1, by=list(variable$c2, variable$c3), FUN=sum)
....
}
я вызываю функцию с циклом
for (i in list_of_dataframes){
drawplot(i)
}
У меня есть список dataframes
list_of_dataframes<-list("df_1","df_2")
Когда я запускаю сценарий, я получить сообщение об ошибке
Error in variable$c1 : $ operator is invalid for atomic vectors
Насколько я понимаю, я создаю список с одним вектором, и я не передаю ни одну из моих данных в функцию. Как я могу применить функцию к каждому набору данных ряда данных df_1, df_2, df_3, .., df_n в этом сценарии?
ТНХ, это был ответственен за предупреждение. Я также пробовал ваше предложение раньше, и когда я запускаю скрипт, я не получаю ошибку, но ничего не происходит, когда функция работает. Когда я вызываю функцию непосредственно 'drawmyplot (df_1)', функция выполняет именно то, что она должна делать. у тебя есть идеи? – rmuc8
Я бы поставил оператор print внутри функции drawmyplot, чтобы узнать, что происходит. Если вы вызываете свою функцию из цикла, вы должны увидеть, что она печатает одни и те же данные, когда вы вызывали каждый файл данных по отдельности. – kith