使用R语言进行数据预处理:忽略最后一列转换为指定输出格式
R语言数据预处理实现方案
核心处理逻辑
- 按行读取输入文本,避免因字段数不一致导致的读取错误
- 对每行内容拆分后判断字段数量,分别解析分组编号和待聚合的数值:
- 3字段行:第1位为分组编号,第2位为目标数值,忽略第3位
- 2字段行:第1个字段的首字符为分组编号,剩余部分为目标数值,忽略第2个字段
- 按分组编号聚合所有目标数值,用逗号拼接后按分组顺序输出
完整可运行代码
# 读取输入文本,如果是读取本地文件,将textConnection(...)部分替换为文件路径即可,示例:readLines("input.txt") input_lines <- readLines(textConnection("1 161 2 1 1897 2 17689 2 1547 1 1 32 1 2 453 1 2 73 1 3 86 1 3 9768 1")) # 初始化分组存储列表 result_list <- list() for (line in input_lines) { parts <- strsplit(line, "\\s+")[[1]] if (length(parts) == 3) { group <- parts[1] value <- parts[2] } else if (length(parts) == 2) { group <- substr(parts[1], 1, 1) value <- substr(parts[1], 2, nchar(parts[1])) } # 追加数值到对应分组 result_list[[group]] <- c(result_list[[group]], value) } # 按分组顺序输出拼接结果 for (group in sort(names(result_list))) { cat(paste(result_list[[group]], collapse = ","), "\n") }
运行输出结果
161,1897,7689,547,32 453,73 86,9768
内容的提问来源于stack exchange,提问作者Kushal Dahal
相关产品推荐
相关产品推荐

