如何用R的readr库将单行文本文件拆分导入为多行DataFrame
解决R语言readr导入单行多组制表符分隔数据的问题
针对你的需求——导入仅含一行、列以制表符分隔、行以单个空格分隔的txt文件,可按以下步骤操作:
读取整个文件为字符串
先用readr::read_file()读取文件全部内容,避免按行读取的函数直接生成单行DataFrame:library(readr) # 替换为你的文件路径 file_content <- read_file("data.txt")拆分出每行的内容
按单个空格拆分字符串,得到包含列名和各行数据的向量:# 用stringr拆分(需先安装/加载stringr包) row_strings <- stringr::str_split(file_content, " ")[[1]] # 或用base R的strsplit row_strings <- strsplit(file_content, " ")[[1]]转换为DataFrame
将拆分后的向量传入read_delim(),指定制表符为列分隔符,同时将第一个元素识别为列名:df <- read_delim(text = row_strings, delim = "\t", col_names = TRUE)
示例验证
模拟你的示例数据并运行:
# 模拟txt文件内容:列名A\tB\tC,数据行3\t2\t1和4\t5\t6,以空格分隔 sample_content <- "A\tB\tC 3\t2\t1 4\t5\t6" row_strings <- stringr::str_split(sample_content, " ")[[1]] df <- read_delim(text = row_strings, delim = "\t", col_names = TRUE) # 输出结果 print(df)
得到的DataFrame如下:
# A tibble: 2 × 3 A B C <dbl> <dbl> <dbl> 1 3 2 1 2 4 5 6
内容的提问来源于stack exchange,提问作者canergin
相关产品推荐
相关产品推荐

