0

我想在 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(""))

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

4

1 回答 1

0

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

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

如果您坚持使用粘贴,您可以像这样使用它:

system(paste("iconv -f ISO-8859-1 -t UTF-8 ", getwd(), "/FileName.md > ", 
                                              getwd(), "/FileNameNew.md", sep=""))
于 2013-09-17T07:10:44.817 回答