假設我有我該如何使用適用於兩個變量同時
# test case
a<-matrix(rep(c(1,2,3,4,5,6),3),ncol=3)
b<-t(matrix(c(1,3,4)))
a
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 2 2 2
[3,] 3 3 3
[4,] 4 4 4
[5,] 5 5 5
[6,] 6 6 6
b
[,1] [,2] [,3]
[1,] 1 3 4
的b
「對應」,以a
列中的每個元素和功能需要如下:
我有一個函數myFun
myfun<-function(x,n) {
x[1:n]<-NA
x
}
,我想用它來恢復
t<-cbind(myfun(a[,1],b[1]), myfun(a[,2],b[2]), myfun(a[,3],b[3]))
t
[,1] [,2] [,3]
[1,] NA NA NA
[2,] 2 NA NA
[3,] 3 NA NA
[4,] 4 4 NA
[5,] 5 5 5
[6,] 6 6 6
我怎樣才能實現上述使用apply
/lapply
/sapply
不使用for
循環?
舉例來說,我嘗試apply(a,2,FUN=myfun,b)
,那麼整個b
傳遞給myfun
而不是b[1]
或b[2]
等
我怎麼可以重寫apply(a,2,FUN=myfun,b)
這樣myfun
只會拿起b
對應於各該元素專欄a
?
嘗試'mapply'或'Map' – Metrics
謝謝'mapply'解決我的問題,就是我一直在尋找。如果可以將您的評論重寫爲答案,我可以選擇它作爲SO中的答案。 – uday
這很好。您可以將其作爲答案發布。 – Metrics