技术问题: R 语言处理中出现了前所未见的报错

2023-08-02 18:33:22 +08:00
 apostles
环境:远程 linux 服务器,R4.1.3 ,使用 conda 管理环境,使用 radian 编辑
目的是将多个对象合并成一个,过程中内存占用可能有 200G 左右。(服务器是 1T 的,所以应该是绰绰有余)
但是程序在合并了 4-5 个之后,报错 Error: vector::reserve 然后程序中断
最见鬼的是我查了查,这甚至不是一个 R 语言报错,有哪位朋友有解决的想法么
函数和包应该是没有问题的,都是常用的

# 加载 pryr 包
library(Seurat)
library(pryr)
# 设置日志文件路径
log_file <- "/home/hanc/Mycode/merge_log1120.txt"

# 开始记录日志
data <- readRDS("/home/hanc/Mycode/data20.RDS")

merged.data <- data [11][[1]][[1]]

for (i in 12:20) {
sink(log_file, append=TRUE)
# 合并 Seurat 对象
merged.data <- merge (merged.data, y = data [i][[1]][[1]], project = "MergedData")

# 计算内存使用量,单位为 GB
mem_used_gb <- mem_used() / 1024^3

# 获取北京时间
beijing_time <- Sys.time()
attr(beijing_time, "tzone") <- "Asia/Shanghai"

# 输出信息
cat(paste("第 ", formatC(i, width = -2, format = "d", flag = "0"), " 个对象已完成,当前内存占用为 ",
formatC(mem_used_gb, digits = 2, format = "f"), " GB ,当前时间为 ", beijing_time, "\n"))
sink()
}
saveRDS(data, file = "/home/hanc/Mycode/data1120.RDS")
571 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/961896

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX