在R中执行控制台命令

时间:2013-09-17 07:04:38

标签: r

我想在R:

下执行这个DOS命令
iconv -f ISO-8859-1 -t UTF-8 FileName.md > FileNameNew.md

上述命令在从ISO转换为UTF后创建新文件。

我尝试过执行此命令但是失败了:

system(paste("iconv -f ISO-8859-1 -t UTF-8 FileName.md > FileNameNew.md", sep=""))

这给了我两种错误:

Invalid argument
No such file or directory

我不认为问题是第二个问题,因为当我在R下运行命令时,它实际上执行命令,因为它重新读取FileName.md,这意味着他找到了该文件。我认为这只是>的问题,因此在system(paste(""))命令中制定了命令。

当我在控制台下直接使用此命令时,它可以工作。

1 个答案:

答案 0 :(得分:0)

问题(很可能)仅仅与R会话所在的位置有关。通过在R中运行getwd()来检查这一点,看看它是否与文件位于同一位置。不应该需要粘贴部分,因为它不是粘贴任何东西(粘贴将2个字符串组合在一起,而这里是一个字符串)。

通过明确地将输入和输出附加到这些文件来解决此问题。

如果你坚持使用粘贴,你可以使用它,例如:

system(paste("iconv -f ISO-8859-1 -t UTF-8 ", getwd(), "/FileName.md > ", 
                                              getwd(), "/FileNameNew.md", sep=""))