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

如何将含范围的R向量解析为对应行的列表?

问题:解析字母范围格式的字符串为对应序列

输入定义

input_string <- as.vector(c("S0027A-E", "S0028A-D", "S0029A-C"))

期望输出

需要得到与输入每个值对应的解析结果,格式如下:

input_stringparsed_strings
"S0027A-E""S0027A", "S0027B", "S0027C", "S0027D", "S0027E"
"S0028A-D""S0028A", "S0028B", "S0028C", "S0028D"
"S0029A-C""S0029A", "S0029B", "S0029C"

现有代码问题

现有代码将所有解析结果合并成了一个包含12个元素的单一向量,而非每个输入对应一个子向量的列表:

# length of input_string
len_string = length(input_string)

# Extract the prefix, start, and end letters
library(stringr)

parsed_strings <- as.character()

for (i in 1:len_string){
  prefix <- str_extract(input_string[[i]][1], "^[A-Z]\\d{4}")
  range_part <- str_extract(input_string[[i]][1], "[A-Z]-[A-Z]$")
  start_letter <- substr(range_part, 1, 1)
  end_letter <- substr(range_part, 3, 3)
  output <- paste0(prefix, LETTERS[match(start_letter, LETTERS):match(end_letter, LETTERS)])
  parsed_strings <- c(parsed_strings, output)
}

修正后的代码

核心修改是将parsed_strings初始化为列表,而非字符向量,每次循环将当前输入的解析结果作为列表元素添加:

library(stringr)

input_string <- as.vector(c("S0027A-E", "S0028A-D", "S0029A-C"))
len_string <- length(input_string)

# 初始化为空列表,而非字符向量
parsed_strings <- list()

for (i in 1:len_string){
  # 简化索引,直接用input_string[i]即可
  current_str <- input_string[i]
  prefix <- str_extract(current_str, "^[A-Z]\\d{4}")
  range_part <- str_extract(current_str, "[A-Z]-[A-Z]$")
  start_letter <- substr(range_part, 1, 1)
  end_letter <- substr(range_part, 3, 3)
  output <- paste0(prefix, LETTERS[match(start_letter, LETTERS):match(end_letter, LETTERS)])
  # 将当前结果添加为列表的第i个元素
  parsed_strings[[i]] <- output
}

# 查看结果
parsed_strings

修正后结果

运行代码后,parsed_strings是长度为3的列表,每个元素对应输入的解析序列:

  • parsed_strings[[1]]:"S0027A" "S0027B" "S0027C" "S0027D" "S0027E"
  • parsed_strings[[2]]:"S0028A" "S0028B" "S0028C" "S0028D"
  • parsed_strings[[3]]:"S0029A" "S0029B" "S0029C"

如果需要生成与输入对应的结构化数据框,可以进一步转换:

result_df <- data.frame(
  input_string = input_string,
  parsed_strings = I(parsed_strings) # I()保留列表列格式
)
print(result_df)

内容的提问来源于stack exchange,提问作者Wilfredo de Vera

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 07:20:16