У меня возникла небольшая проблема с получением R для выполнения системной команды для меня. Системная команда openssl
очень проста.
Я в системе Windows.
Если я выполню следующий код либо в командной строке cmd.exe, либо в powershell, он будет работать так, как ожидалось:
## echo "the name of the dog is bruce" | openssl enc -base64
dGhlIG5hbWUgb2YgdGhlIGRvZyBpcyBicnVjZQo=
Однако, когда я пытаюсь преобразовать это обратно в исходную строку в моем R-скрипте, это не работает:
mydata <- "dGhlIG5hbWUgb2YgdGhlIGRvZyBpcyBicnVjZQo="
system(sprintf("echo '%s' | openssl enc -base64 -d", mydata))
Он жалуется на то, что echo
не найден.
Warning message:
'echo' not found
Я знаю, что есть пакеты, которые я могу загрузить, однако я хотел бы решить эту проблему с помощью базовых пакетов, поставляемых с R. Поскольку openssl не является частью базы, я прибегаю к описанному выше методу (который я знать неэффективно, поэтому, пожалуйста, успокойтесь на меня).
Я пытался:
system2(sprintf("echo '%s' | openssl enc -base64 -d", mydata))
и
shell(sprintf("echo '%s' | openssl enc -base64 -d", mydata))
Ни один из них не работал.