R中引用的系统命令

时间:2014-07-16 18:03:41

标签: r csv awk quotes

我想在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的文本编辑器能够正确打印此帖子。

2 个答案:

答案 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)