我想在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(""))
命令中制定了命令。
当我在控制台下直接使用此命令时,它可以工作。
答案 0 :(得分:0)
问题(很可能)仅仅与R会话所在的位置有关。通过在R中运行getwd()
来检查这一点,看看它是否与文件位于同一位置。不应该需要粘贴部分,因为它不是粘贴任何东西(粘贴将2个字符串组合在一起,而这里是一个字符串)。
通过明确地将输入和输出附加到这些文件来解决此问题。
如果你坚持使用粘贴,你可以使用它,例如:
system(paste("iconv -f ISO-8859-1 -t UTF-8 ", getwd(), "/FileName.md > ",
getwd(), "/FileNameNew.md", sep=""))