Я попытался заменить цикл for
на apply
цикл в существующем сценарии R. Тем не менее, моя старая функция возвращает несколько списков dataFrames, таких как return(list(df1,df2))
. Для некоторых деталей, пример представлен ниже:R применить цикл с возвратным списком
Старый Сценарий:
MyFunction = function(input){
df1=array(NA,c(0,1))
df2=array(NA,c(0,1))
for(i in 1:n){
...
df1 = rbind(df1,action1(input))
df2 = rbind(df2,action2(input))
}
return(list(df1,df2))
New Script:
Object = do.call(rbind, lapply(1:n,function(i){
df1 = action1(input)
df2 = action2(input)
return(list(df1,df2))
}))
я получаю:
[,1] [,2] [,3] [,4] [,5]
[1,] List,2 List,2 List,2 List,2 List,2
[2,] List,2 List,2 List,2 List,2 List,2
[3,] …
Я понятия не имею, чтобы решить моя проблема. Любая помощь будет оценена.
Благодаря достижениям в
,B.Gees
Что такое * action1() * и * action2() *? И это не кадры данных в первой функции, а массивы, две очень разные структуры данных. – Parfait
Извините, мой пример не является выразительным. Я использовал '...' для разных действий из входных данныхFrame и 'action1' и' action2' для двух разных вычислений на моем преобразованном DataFrame. Я согласен с вами в отношении дифференциации между 'array' и dataFrame, но для меня это простое решение для инициализации dataFrame и получения хороших заголовков столбцов путем простой конкатенации первого результата dataFrame. –