我有一台 8GB RAM 的 64 位 Windows 7 机器。memory.limit()
显示8135
。我遇到了内存问题,即使我正在尝试做的事情看起来一点也不奇怪(与 SO 上的其他与内存相关的问题相比)。
基本上我将公司的 ID 与他们的行业相匹配。ref.table
是我存储ID和行业以供参考的数据框。
matchid <- function(id) {
firm.industry <- ref.table$industry[ref.table$id==id]
firm.industry <- as.character(firm.industry[1]) # Sometimes same ID has multiple industries. I just pick one.
resid <<- c(resid, firm.industry)
}
resid <- c()
invisible( lapply(unmatched.id, matchid) ) # unmatched.id is the vector of firms' ID to be matched
该unmatched.id
向量的长度约为 60,000 个元素。我仍然收到错误“无法分配41.8kb大小的向量”(只有 41.8kb!)Windows 任务管理器始终显示完整的 RAM 使用情况。
是不是因为我的功能在某种程度上太笨拙了?我无法想象这是导致问题的矢量大小。
(PS:我经常做 gc() 和 rm())