Разные результаты от разброса в R 3.4.4 и R 3.5 - PullRequest
0 голосов
/ 19 мая 2018

deparse дает разные результаты в R 3.4.4 и R 3.5. NEWS предполагает, что некоторые настройки по умолчанию изменились, но мне не ясно, как обеспечить, чтобы deparse выдает одинаковый выходной сигнал в R 3.4.4 и R 3.5

R 3.4.4

> deparse(list(dec = 4L, b = "a"), control = "keepNA")
[1] "list(dec = 4, b = \"a\")"

R 3,5

> deparse(list(dec = 4L, b = "a"), control = "keepNA")
[1] "list(4, \"a\")"

РЕДАКТИРОВАТЬ:

Благодаря полезным предложениям @HongOoi и @akrun самое близкое решение, которое обеспечит тот же результат воба R 3.4.4 и R 3.5 кажутся:

dctrl <- if (getRversion() > "3.4.4") c("keepNA", "niceNames") else "keepNA"
deparse(list(dec = 4L, b = "a"), control = dctrl)

Ответы [ 2 ]

0 голосов
/ 19 мая 2018

У меня не установлен R 3.5, но в файле NEWS вы можете попробовать showAttributes и / или niceNames аргументы для deparse:

Эти функции получаютновая опция управления "niceNames" (см. .deparseOpts ()), которая при установке (по умолчанию) также использует синтаксис (tag = value) для атомарных векторов.С другой стороны, без дополнительных параметров "showAttributes" и "niceNames" имена больше не отображаются и для списков.as.character (list (c (one = 1))) теперь включает имя, как всегда делал as.character (list (list (one = 1))).

0 голосов
/ 19 мая 2018

Мы могли бы использовать substitute в R 3.5, чтобы получить тот же результат, что и в R 3.4.4

deparse(substitute(list(dec = 4L, b = "a")), control = "keepNA")
#[1] "list(dec = 4, b = \"a\")"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...