我有以下一些较大的数据集:
> dim(dset)
[1] 422105 25
> class(dset)
[1] "data.frame"
>
不执行任何操作,R进程似乎需要大约1GB的RAM。
我正在尝试运行以下代码:
dset <- ddply(dset, .(tic), transform,
date.min <- min(date),
date.max <- max(date),
daterange <- max(date) - min(date),
.parallel = TRUE)
运行该代码,RAM使用率飞速增长。它在32核计算机上运行时完全饱和了60GB的RAM。我究竟做错了什么?
最佳答案
如果性能是一个问题,那么最好改用同名软件包中的data.table
。他们很快。您可能会做类似以下的事情:
library(data.table)
dat <- data.frame(x = runif(100),
dt = seq.Date(as.Date('2010-01-01'),as.Date('2011-01-01'),length.out = 100),
grp = rep(letters[1:4],each = 25))
dt <- as.data.table(dat)
key(dt) <- "grp"
dt[,mutate(.SD,date.min = min(dt),
date.max = max(dt),
daterange = max(dt) - min(dt)), by = grp]
关于r - 我使用plyr对吗?我似乎使用了太多的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8454019/