我正在使用lapply循環訪問數據框列表並應用相同的功能集。當lapply只有一個函數時,這工作正常,但我很努力地看到我如何存儲/打印多個函數的輸出 - 在這種情況下,我似乎只從一個「循環」獲得輸出。R存儲從多功能lapply輸出
所以這個:
output <- lapply(dflis,function(lismember) vss(ISEQData,n=9,rotate="oblimin",diagonal=F,fm="ml"))
作品,而下面沒有:
output <- lapply(dflis,function(lismember){
outputvss <- vss(lismember,n=9,rotate="oblimin",diagonal=F,fm="ml")
nefa <- (EFA.Comp.Data(Data=lismember, F.Max=9, Graph=T))
})
我覺得這個虛擬的例子是模擬的,所以換句話說:
nbs <- list(1==1,2==2,3==3,4==4)
nbsout <- lapply(nbs,function(x) length(x))
給了我一些我可以訪問的東西,而我看不到如何使用下面的方式存儲輸出(例如嘗試使用nbsout [[x]] [2 ]):
nbs <- list(1==1,2==2,3==3,4==4)
nbsout <- lapply(nbs,function(x){
nbsout[[x]][1]<-typeof(x)
nbsout[[x]][2]<-length(x)
}
)
我使用RStudio和將被打印輸出/針織的HTML(其中是有意義的顯示從每個數據集的結果一起,而不是每個功能輸出每個數據集順序地)。
我猜如果他們使用'c'而不是'list'將會更容易訪問這些值(至少對於他們可重複的例子,當結果只是每個函數的一個值) –
@DavidArenburg'c'是隻是一個'list'的快捷方式,不是嗎? – agstudy
@agstudy,輸出是列表中每個參數的一個向量,而不是列表中每個參數的列表。嘗試'lapply(nbs,function(x){nbsout1 <-typeof(x); nbsout2 <-length(x); c(nbsout1,nbsout2)})' –