我試圖在existant R腳本中用apply
循環替換for
循環。儘管如此,我的舊函數返回多個數據框列表,如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))
新的腳本:
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
對不起,我的例子沒有表現力。我在輸入dataFrame和'action1'和'action2'中使用了'...'來對我轉換的dataFrame進行兩種不同的計算。我同意你關於'array'和dataFrame的區別,但是對於我來說,初始化dataFrame並通過第一個結果dataFrame的簡單串聯獲得好的列標題是一個簡單的解決方案。 –