1
我有一個高維數組,並希望對它們應用一些函數。問題是我不能告訴apply()(或類似的應用系列),傳遞函數的對象不在函數的第一個參數中。如何使apply()函數的參數之一(而不是第一個)傳遞對象?
阿呆這裏例如:
data <- c(1,2,3,4,5)
myarray <- array(data,dim=c(5,5,2,2),dimnames=list(NULL,
paste("col",1:5,sep=""),
paste("matrix",1:2,sep=""),
paste("slice",1:2,sep="")))
現在,想象一下這種結構的功能:
function(arg1,arg2,arg3,data,arg4)
如果我想使應用傳遞函數對象「myArray的」,我需要指定參數(「數據」)的位置。我試過但沒有結果:
apply(myarray,c(3,4),function,arg1,arg2,arg3,arg4)
在此先感謝!
謝謝!我指定了每一個參數,除了我想要迭代並且工作得很好。輸出不尊重應用程序中的c(3,4)邊距,而是返回一個較低維數組,但由於我想要的數據在那裏,所以在array()格式化所有內容之後:) –
我也嘗試過另一種有效的策略,但是風險很大:檢查函數(F2鍵),並創建一個克隆函數,將期望迭代參數放在首位。 –
但是,如果您不想指定所有其他參數,則此替代方法(克隆函數之一)可能很有用 –