R语言:如何将无表头.out文件转为csv且不将首行设为表头?
解决无表头.out转csv的问题
你原来的代码只是修改了文件后缀,并没有实际处理文件内容,所以R读取csv时默认会把第一行数据当作表头。正确的做法是实际读取.out文件内容,再保存为无表头的csv文件,后续读取时也要明确指定无表头。
修正后的代码
# 获取所有.out文件 files <- list.files(pattern = "*.OUT") # 循环处理每个文件 for (file in files) { # 读取无表头的.out文件,注意:如果你的.out文件分隔符不是制表符,换成实际的分隔符(比如sep = ","或sep = " ") data <- read.table(file, header = FALSE, sep = "\t") # 生成对应的csv文件名 csv_file <- gsub(".OUT$", ".csv", file) # 保存为无表头的csv文件,不添加行号和自动列名 write.csv(data, csv_file, row.names = FALSE, col.names = FALSE) } # 查看生成的csv文件 new_files <- list.files(pattern = "*.csv") print(new_files)
关键说明
read.table(header = FALSE):明确告诉R原文件没有表头,第一行就是数据内容write.csv(col.names = FALSE):保存csv时不自动生成V1、V2这类列名,完全保留原文件的无表头格式- 分隔符适配:如果你的.out文件不是用制表符分隔,一定要修改
sep参数为实际的分隔符(比如逗号、空格等)
后续读取csv的正确方式
之后读取这些生成的csv文件时,同样要指定header = FALSE,避免把第一行数据误判为表头:
csv_data <- read.csv("目标文件名.csv", header = FALSE)
内容的提问来源于stack exchange,提问作者Sana
相关产品推荐
相关产品推荐

