因此,我尝试将一些大型制表符分隔txt
文件(200 MB)导入R
进行统计分析。不幸的是,文件格式与列/行数不一致。第一行包含除前两列之外的所有列的标题名称。
示例:
header3 header4 header5
column1 column2 column3 column4 column5
我可以在将文件读入R
后修复该文件,但更优雅的方法是将header1 header2
插入文件中。
我试过了:
cat file_with_missing_headers main_file > new_file
这导致两者之间的新界限。有没有办法压制新线?
或者也许是另一种工具?
答案 0 :(得分:5)
$ { echo -n "header1 header2 "; cat file; } >newfile
-n
会抑制不需要的换行符。
使用sed
:
$ sed '1s/^/header1 header2 /' file >newfile
由于1
,这会对file
的第一行(仅第一行)进行替换。插入符^
匹配第一行的开头。标题在行的开头被替换,文件的其余部分保持不变。
答案 1 :(得分:2)
在R中,您可以忽略第一行,然后创建一组新名称。例如,使用
setNames(read.table(fileName, skip = 1), paste0("header", 1:5))
将读取文件并一次性设置新列名。请注意,read.table
的默认分隔符为sep = ""
,因此如果是csv文件,则需要将其更改为sep = ","
。
然后,当您完成后,您可以使用write.table
将新数据集写入同一文件,下次使用数据时无需担心这一点。