0
我已經找到了使用reshape2來完成此操作的過程,但它非常緩慢,並不完全給我我想要的東西。我有一個data.frame,看起來像這樣:將X-Y data.frame轉換爲R中每一列的矩陣有效
df<-data.frame(expand.grid(1:10,1:10))
colnames(df) <- c("x","y")
for(i in 3:10){
df[i] <- runif(100,10,100)
}
我運行:
require(reshape2)
matrices<-lapply(colnames(df)[-c(1:2)],function(x){
mat<-acast(df, y~x, value.var=x, fill= 0,fun.aggregate = mean)
return(mat)
})
那裏我有矩陣對我的數據的每個值向量的列表,我可以將其轉化成一個數組爲1:10,1:10,1:10的維度,但我期待着看看是否有更快的方法來做到這一點,因爲我的數據集可以包含很多值列,這個過程可能需要很長時間,我不能似乎找到一個更有效的方式做它..
感謝您的任何幫助。
看看'dcast'在'數據.table'包。它通常比'reshape2'更高效。 –
描述你想做什麼,而不是簡單地引用「this」就好像你的標題解釋自己 – Frank
我認爲我的答案是解決問題的更有效方法之一,據我瞭解。 – lmo