2013-09-17 2 views
0

Я хотел бы, чтобы выполнить эту команду DOS под R:Выполнение команды консоли в R

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

Проблема заключается (скорее всего) просто в том, где находится сеанс R. Проверьте это, запустив getwd() в R и посмотрите, находится ли он в том же месте, что и файл. Часть пасты не нужна, так как она не вставляет ничего (паста объединяет две строки вместе, а здесь одна строка).

Решите это, явно добавив ввод и вывод в эти файлы.

Если вы настаиваете на использовании пасты, вы можете использовать его, например, так:

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

Путь прекрасен. Я устанавливаю путь с помощью setwd(). – Maximilian

+0

Попробуйте избежать «<» возможно? «\ <», хотя я сомневаюсь, что так оно и будет. – PascalVKooten

+0

Также попытайтесь выяснить, работает ли простой «cp»? – PascalVKooten

Смежные вопросы