这是对这个问题的跟进。我有这个固定宽度的文件,其中列宽是 34 2 3 2 2 1 2 2 1 1 2 2 1 2 2 2 和 65。我想在删除第一列和最后一列后将其读入 R,其中第二列的值为“07”。感谢 Mat,如果我只想将 txt 文件转换为 csv,我可以使用以下代码来完成:
awk -v FIELDWIDTHS='34 2 3 2 2 1 2 2 1 1 2 2 1 2 2 2 65' -v OFS=',' '($2=='07'){ $1=$1 ''; print }' </filepath/pipe.txt | cut --delimiter=',' --fields=2- > /filepath/parsed.csv
当然,然后我可以读入parsed.csv
文件。但我试图用pipe()
. 当我尝试在 R 中管道时,它挂起:
a = read.csv(pipe("awk -v FIELDWIDTHS='34 2 3 2 2 1 2 2 1 1 2 2 1 2 2 2 65' -v OFS=',' '($2=='07'){ $1=$1 ''; print }'
</filepath/pipe.txt
| cut --delimiter=',' --fields=2-")
, header=F, colClasses="character")