我有一個函數,我正在使用mapply跨數據框或矩陣(df)列表應用。該函數根據原始數據幀的一些轉換標準輸出四種不同類型的數據幀(例如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
在這種情況下,你可以看到它只是給了我四個輸出數據幀的名單:從DF1(A d),然後追加從DF2權後的下一組輸出。我希望有一個輸出,每個數據幀轉換都放在一個列表中,我可以按類別訪問它(例如finalresults $ a)。任何幫助將非常感謝!
感謝, -Chelsea
在'mapply'中設置'SIMPLIFY = FALSE'。 –
謝謝你的迴應!我在運行SIMPLIFY = FALSE時遇到錯誤:SI:函數(x)中的錯誤:未使用的參數(SIMPLY = dots [[2]] [[1]]) – Chelsea
您需要使用' SIMPLIFY = FALSE',而不是'SIMPLY = FALSE'(!) –