Как я могу получить результат getParseData в неинтерактивном вызове? - PullRequest
0 голосов
/ 22 января 2020

У меня есть небольшой R-скрипт, содержащий это:

code <- 'write.table(x=iris, file="iris.txt", sep="_")'
sink(file("all.Rout", open = "wt"))
parse(text=code)
str( getParseData(parse(text=code))   )
sink()

Вкл. Windows (R 3.6.1), я открываю cmd, введите R, затем source(script.R).
В результате all.Rout содержит строку data.frame мне нужно. Результат разбора не отображается, но он мне не нужен. Все хорошо.

Когда в cmd я набираю Rscript script.R, all.Rout содержит expression(write.table[...]), но результат getParseData равен NULL. Мне нужно последнее для проверки синтаксиса в настройках теста.

1 Ответ

0 голосов
/ 22 января 2020

Видя этот пост ( `parse` ведет себя по-разному в интерактивном и неинтерактивном режимах ), решение простое:

getParseData(parse(text=code, keep.source=TRUE)) 

Очевидно, getOption("keep.source") ЛОЖНО в не -интерактивные сеансы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...