You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中导入数据并创建含命名空向量的分块列表?

问题解决:创建包含空向量的嵌套列表

需求说明

现有如下格式的文本文件:

Vert 007, Horiz 002
Vert 007, Horiz 004
Vert 005, Horiz 006
Vert 012, Horiz 002
Next Power
Vert 003, Horiz 003
Vert 008, Horiz 005
Vert 012, Horiz 001
Vert 002, Horiz 001
Next Power
Vert 009, Horiz 001
Vert 005, Horiz 003
Vert 010, Horiz 005
Vert 001, Horiz 002

需要按Next Power分割内容,生成嵌套列表:

  • 列表的每个元素对应一个分段
  • 每个分段内,以对应行的文本为名称,创建空向量(而非嵌套列表)

原代码问题

原代码中,将每个命名元素初始化为list(),还通过append把行内容添加进去,导致最终生成的是嵌套列表结构,不符合需求。

修正后的代码

# 先读取文件内容
file_content <- readLines("your_file.txt")

# 初始化外层列表
file_list <- list()
file_list[[1]] <- list()

for (line in file_content) {
  if (grepl("Next Power", line)) {
    # 遇到分隔符时,添加新的子列表
    file_list <- append(file_list, list(list()))
  } else {
    # 使用行文本作为名称,可选去除首尾空白避免异常
    subfolder_name <- trimws(line)
    # 为该名称赋值空向量,而非列表
    file_list[[length(file_list)]][[subfolder_name]] <- vector()
  }
}

关键改动说明

  1. 移除多余的gsub:原行文本就是需要的名称,无需额外替换
  2. 替换空列表为向量:将list()改为vector(),直接创建空向量
  3. 删除不必要的append操作:不需要把行内容添加到向量中,仅保留空向量结构

验证结构可以使用str(file_list),会看到每个子列表内的元素都是 atomic(0)类型的空向量,符合后续填充数据的需求。

内容的提问来源于stack exchange,提问作者Shahriar Rashvand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 13:12:41