如何在R中读取特殊格式txt文件并转换为数值数组?
R读取非标准格式txt文件解决方案
你遇到的问题本质是文件格式不属于read.csv/read.delim适配的标准分隔符表格,这类函数默认会把第一行内容作为列名,遇到数字、特殊符号开头的列名就会自动补X前缀,且你文件里的内容本身就没有表头和数据行的区分,用表格读取函数自然无法得到正确结果。
按以下步骤操作即可直接提取出目标数值数组:
- 先读取文件的原始字符串内容
# 读取txt文件的全部内容,跳过空行警告 raw_content <- readLines("data.txt", warn = FALSE)
- 清洗掉不需要的前缀和括号,只保留数字部分的字符串
# 匹配删除「数字:[」前缀和末尾的「]」后缀 num_content <- gsub(pattern = "^\\d+:\\[|\\]$", replacement = "", x = raw_content)
- 拆分字符串并转成数值数组
# 按逗号+可选空格拆分,统一转成数值类型 target_array <- as.numeric(unlist(strsplit(num_content, split = ",\\s*")))
操作完成后直接打印target_array就能得到你需要的12个浮点数值。如果需要保留冒号前的标识数字(示例里的5),可以额外加一行代码提取:
label_num <- as.integer(sub(pattern = ":.*", replacement = "", x = raw_content))
内容的提问来源于stack exchange,提问作者Luis
相关产品推荐
相关产品推荐

