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

求助:R语言读取无分隔符TXT文件并合并的问题

解决方案

你的文件格式是JSON键值对结构,不是传统的表格格式,所以read.table无法正确解析列名和内容;同时不完整行的警告也源于文件格式与读取方式不匹配。以下是针对性解决方法:

1. 依赖包准备

首先安装并加载jsonlite包(专门处理JSON格式数据):

install.packages("jsonlite")
library(jsonlite)

2. 自定义读取函数

编写一个函数,完成「读取文件内容→修复不完整行→解析为单行数据框」的流程:

read_single_json_txt <- function(file_path) {
  # 读取文件所有内容,关闭不完整行警告
  txt_content <- readLines(file_path, warn = FALSE)
  # 合并所有行(避免内容被拆分到多行的情况)
  full_content <- paste(txt_content, collapse = "")
  # 修复不完整的JSON结构:确保以}结尾,缺失则自动补充
  if (!grepl("}$", full_content)) {
    full_content <- paste0(full_content, "}")
  }
  # 解析为单行数据框
  fromJSON(full_content)
}

3. 批量读取并合并

替换原代码的读取合并部分,用自定义函数批量处理:

setwd("C:/User/BOX")
unzip("C:/User/BOX/data.zip")
temp <- list.files(pattern = "*.txt")

# 批量读取所有文件,合并为一个数据框
df <- do.call(rbind, lapply(temp, read_single_json_txt))

关键说明

  • 跳过不完整行警告:通过readLines的warn = FALSE参数直接屏蔽无关警告,同时用代码自动修复可能的JSON结构缺失。
  • 适配JSON格式:你的文件本质是单个JSON对象,fromJSON可以直接将其转换为1行数据框,完美匹配「每个文件1行115列」的需求。
  • 自动修复结构:如果文件末尾缺失闭合的},代码会自动补充,确保解析流程不中断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 15:15:10