这是this问题的后续行动。我有this固定宽度的文件,其中列宽是34 2 3 2 2 1 2 2 1 1 2 2 1 2 2 2和65.我想在读取第一列和最后一列之后读入R,其中第二列的值为“07”。由于太,如果我只是想txt文件到CSV转换,我可以用这个代码做到这一点:。管道unix命令
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")
请不要将已解决的问题添加到您的标题中,但请勾选正确的答案......另外,您可能希望将您的名称从默认生成的名称更改为更具意义的名称(但这仅仅是我的意见)。 – 2012-04-12 08:47:42
保罗,我补充说“解决了”,因为没有“正确的”答案。问题本身就是问题,我自己偶然发现了这种认识。请参阅下面的避难所注释。 – user702432 2012-04-13 06:31:23
我了解情况。我建议你编辑你的答案,包括解决你的问题的描述,并接受这个答案。这在SO上完全可以接受。 – 2012-04-13 06:52:59