V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
apostles
V2EX  ›  问与答

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

  •  
  •   apostles · 269 天前 · 400 次点击
    这是一个创建于 269 天前的主题,其中的信息可能已经有所发展或是发生改变。
    环境:远程 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")
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5697 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 02:39 · PVG 10:39 · LAX 19:39 · JFK 22:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.