Пожалуйста, смотрите ниже MWE
generate_summ_code= function(...) {
code = substitute(list(...))[-1]
gpd = getParseData(parse(text = deparse(code)), includeText = TRUE)
print(gpd)
gpd
}
generate_summ_code(n = n())
Если я запускаю это в REPL, я получаю распечатку
> line1 col1 line2 col2 id parent token terminal text
> 10 1 1 1 5 10 0 expr FALSE n()()
> 6 1 1 1 3 6 10 expr FALSE n()
> 1 1 1 1 1 1 3 SYMBOL_FUNCTION_CALL TRUE n
> 3 1 1 1 1 3 6 expr FALSE n
> 2 1 2 1 2 2 6 '(' TRUE (
> 4 1 3 1 3 4 6 ')' TRUE )
> 7 1 4 1 4 7 10 '(' TRUE (
> 8 1 5 1 5 8 10 ')' TRUE )
Однако, если я помещаю код в файл, скажем code.r
и я
Rscript code.r
или
R -e "source('code.r')"
Он просто возвращает NULL. В ?getParseData
нет ничего, что указывает на то, что поведение должно быть другим?
Это ошибка в Base R?