1
我在寫筆記來比較apply()和sweep(),發現了以下奇怪的差異。爲了生成相同的結果,sweep()在應用想要的MARGIN = 2時需要MARGIN = 1。另外,指定矩陣的參數是apply()中的大寫X,而sweep()中的小寫。apply()vs. sweep()in R
my.matrix <- matrix(seq(1,9,1), nrow=3)
row.sums <- rowSums(my.matrix)
apply.matrix <- apply(X = my.matrix, MARGIN = 2, FUN = function (x) x/row.sums)
sweep.matrix <- sweep(x = my.matrix, MARGIN = 1, STATS = rowSums(my.matrix), FUN="/")
apply.matrix - sweep.matrix ##yup same matrix
不掃描()「應用類型」函數?這只是另一個R的怪癖,還是我失去了主意?
你的問題是什麼,即閱讀文檔後究竟有什麼不清楚? – Roland
問題:對於同樣的問題,兩個緊密相關的函數確實有不同的語法嗎? –
請注意,R已經開發了很長時間,R-Core非常注意不要破壞現有的代碼。這兩種功能都可能是S的遺留問題,並且與S/S-PLUS的兼容性在早期非常值得關注。 – Roland