3
我想知道,是否有可能對某些特定的taks進行有效的數據表交叉連接。使用函數crossproduct/join與data.table
比方說,我有一個向量化的版本,比較所有其他數字中的所有數字。如果我沒有記錯的話,那麼它的R中的矢量版本將
somevector <- rnorm(10, 5)
sapply(somevector, function(x) {
return(x-somevector)
})
是否有可能產生與data.table同一矩陣?它會有效嗎?
謝謝!
不是你的問題的答案,但你可以使用'outer(somevector,somevector,' - ')',這比你的方法更快。 – Roland
是的,謝謝。我運行你的片段,但我沒有得到更快的結果 'somevector < - rnorm(10000,5) system.time(sapply(somevector,function(x){return(x-somevector)})) system.time (outer(somevector,somevector,' - '))' – Drey
在我的系統中,'outer'的速度提高了一倍。你可能已經用完了RAM,使得寫入磁盤的速度瓶頸。 'data.table'確實有一些令人印象深刻的魔法,但我不確定它可以加速這個操作。雖然它可能有助於解決內存問題。 – Roland