У меня есть функция, которую я применяю в списке фреймов данных или матриц (df) с использованием mapply. Функция выводит четыре разных типа кадров данных (например, a: d) на основе некоторых критериев преобразования исходного кадра данных, но у меня возникают проблемы, так как функция позволяет мне выводить только один. Я попытался собрать их в список, но когда я запускаю упрощенную функцию, я получаю это.Возвращение нескольких списков в mapply
df1<-matrix(rnorm(10), nrow=10, ncol=10)
df2<-df1
df<-list(df1, df2)
func<-function (x) {
a<-x*1
b<-x*2
c<-x*3
d<-x*4
return(list(a,b,c,d))
}
finalresult<-mapply(func, x=df)
str(finalresult)
List of 8
$ : num [1:10, 1:10] -3.211 -0.121 -0.2 0.491 1.118 ...
$ : num [1:10, 1:10] -6.422 -0.242 -0.4 0.982 2.235 ...
$ : num [1:10, 1:10] -9.633 -0.362 -0.6 1.473 3.353 ...
$ : num [1:10, 1:10] -12.844 -0.483 -0.8 1.964 4.471 ...
$ : num [1:10, 1:10] -3.211 -0.121 -0.2 0.491 1.118 ...
$ : num [1:10, 1:10] -6.422 -0.242 -0.4 0.982 2.235 ...
$ : num [1:10, 1:10] -9.633 -0.362 -0.6 1.473 3.353 ...
$ : num [1:10, 1:10] -12.844 -0.483 -0.8 1.964 4.471 ...
- attr(*, "dim")= int [1:2] 4 2
В этом случае вы можете видеть, что это просто дает мне список из четырех кадров выходных данных (A: D) от df1, а затем добавляет следующий набор выходов из df2 сразу после. Я хочу получить вывод, где каждое преобразование фрейма данных помещается в список, где я могу получить к нему доступ по категориям (например, finalresults $ a). Любая помощь будет очень высоко ценится!
Спасибо, -Chelsea
Установите 'УПРОЩЕН = FALSE' в' mapply'. –
Благодарим за отзыв! Я получаю ошибку, когда я запускаю ее с помощью SIMPLIFY = FALSE: SI: Ошибка в функции (x): неиспользуемый аргумент (ы) (SIMPLY = dots [[2]] [[1]]) – Chelsea
вам нужно использовать ' SIMPLIFY = FALSE', а не 'SIMPLY = FALSE' (!) –