我想在R中使用system()命令发送:
system("awk -F "\"* ,\"*" 'NR==1 || $4 == 2925204' input.csv > output.csv")
到我的Mac上的终端。在终端,我可以运行:
awk -F "\"* ,\"*" 'NR==1 || $4 == 2925204' input.csv > output.csv
不幸的是,我不确定如何让R正确读取引号。谁能帮助我?
请注意,我必须在第一个星号后添加一个额外的空格,以便stackoverflow的文本编辑器能够正确打印此帖子。
答案 0 :(得分:1)
将awk的Field Separator值括在单引号内。
system("awk -F '\"* ,\"*' 'NR==1 || $4 == 2925204' input.csv > output.csv")
答案 1 :(得分:1)
如果你已经在R,为什么不在R完成整个工作?与Awk相比,R具有专用功能,更适合解析CSV。
你走了:
df <- read.csv('input.csv')
rest <- df1[-1,]
out <- rbind(head(df, 1), subset(rest, rest[,4] == 2925204))
write.csv(out, 'output.csv', quote=F, row.names=F)