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

如何在R中将数据框中的数字序列转换为指定格式的文本文件

实现思路

  • 第一步:给连续数值分组。通过计算相邻数值的差值,差值大于1即判定为新分组的起点
  • 第二步:生成分组缩写。单元素组直接保留数值,多元素连续组拼接首尾数值用-连接
  • 第三步:按每行最多3个分段的规则拆分所有缩写段
  • 第四步:处理行尾逗号,非最后一行末尾追加逗号,最后一行不追加
  • 第五步:将处理后的行直接写入文本文件

完整可运行代码

# 示例数据
test <- data.frame(N=c(1,2,3,5,7,8,9,11,13,14,15))

# 1. 连续数值分组
x <- test$N
grp <- cumsum(c(1, diff(x) > 1))

# 2. 生成分组缩写
seg_list <- tapply(x, grp, function(v) {
  if (length(v) == 1) as.character(v)
  else paste(v[1], v[length(v)], sep = "-")
})

# 3. 按每行最多3个分段拆分
line_grp <- (seq_along(seg_list) - 1) %/% 3
line_list <- tapply(seg_list, line_grp, paste, collapse = ",")

# 4. 处理行尾逗号
n_lines <- length(line_list)
if (n_lines >= 2) {
  line_list[1:(n_lines-1)] <- paste0(line_list[1:(n_lines-1)], ",")
}

# 写入文本文件
writeLines(line_list, con = "result.txt")

运行效果

执行后生成的result.txt内容完全符合要求:

1-3,5,7-9,
11,13-15

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:54:01