我在 R 中有一个大型数据集(2.8m 行 x 4 列),我正在尝试转置。我试图使用 reshape2::cast 函数进行转置,但内存不足。
问题1:有没有更好的方法来做转置?
问题 2:我正在尝试将设置的数据分成几部分,对这些部分进行转置,然后重新组合它。但是,我在重组步骤中遇到了一个问题,cbind 要求我提前知道我想加入哪些列。有没有解决这个问题的聪明方法?
bigtranspose<-function(dataset){
n<-nrow(dataset)
i<-1
while (i<=n){
#take 10 rows at a time and do the transpose
UB <- min(i+10, n)
small<-dataset[i:UB,]
smallmelt<-melt(small, id=c("memberID", "merchantID"))
t<-dcast(smallmelt, memberID~merchantID, na.rm=TRUE)
#stack the results together
if ( !exists("finaldataset") )
finaldataset<-t
else
finaldataset<-rbind(finaldataset,t)
i <- i+10+1
}
}