這是一個基本的問題,當然,也有很多在谷歌的例子..但我就是不明白這個小一堆代碼..Sapply功能混淆了我
V <- seq(50, 350, by = 1)
> VK
Voltage^0 Voltage^1 Voltage^2 Voltage^3
-1.014021e+01 9.319875e-02 -2.738749e-04 2.923875e-07
plot(x = V, exp(exp(sapply(0:3, function(x) V^x) %*% VK)), type = "l"); grid()
我試圖讓這背後在玩了很多功能之後,但是..我不能將我的想法應用到這個特定的行中。 據我所知,我相信我可以告訴:sapply是一種將矢量或列表或元素的每個元素應用於主體的函數。在這種情況下,這是V. 讓我困惑的一點是「0:3」部分(這似乎是VK的元素數量)和函數%*%VK的結尾。當我用不同的數字對我自己做同樣的事情時,VK被總結出來,然後用作exp(exp(V^x))的係數。但在這種情況下,這是沒有意義的。 此外:通過谷歌搜索,我總是讀到sapply產生的向量。由於上面的代碼生成一個繪圖,這是一個2D向量作爲結果?
'sap ply()'運行'V^0',然後'V^1',然後'V^2',然後'V^3',然後將結果放入矩陣。然後'%*%'將該矩陣乘以'VK'。忘記谷歌一分鐘,並通過'help(sapply)'閱讀官方的R文檔。 –
@RichScriven Ahh ..非常感謝!這是非常unvisceral .. :)你也可以請告訴我爲什麼這隻適用於當我要求「(..sapply(0:3,..)」而不是「(..sapply(0:2,..)」)或者不同的東西? – Ben
因爲'length(0:2)'和'length(VK)'是不一樣的。對於'%*%',矩陣必須符合 –