Пакет flextable назначает изменения без <-

Я не уверен, что это правильный форум, чтобы публиковать это, но я заметил странное поведение с flextable пакет в R, и было интересно, если кто-нибудь может пролить свет.

В документации для flextable он показывает объекты, которые были изменены, когда они переназначаются для себя, например:

ft <- regulartable(head(iris)) 
ft <- color(ft, color = "orange", part = "body" )

Тем не менее, мой код изменяет фактическую таблицу, даже не переназначая ее, просто используя трубопровод %>%:

myft <- regulartable(head(iris))
myft %>% align(j = 1, align = "left")
myft    # changed

Я не думаю, что проблема заключается в конвейере, поскольку он не имеет такого же эффекта с другими пакетами, например:

library(plyr)
df <- head(iris)
df %>% mutate(Sum=Sepal.Width*2)
df    # unchanged

Это ошибка в flextable? Или это по замыслу?

1 ответ

Решение

Это правда, что вы можете изменять форматы, не назначая объект. Но это не то поведение, на которое вы можете положиться. Это нежелательный дизайн;) и должен быть исправлен в следующих версиях, чтобы было безопаснее присвоить результат, если вы хотите, чтобы ваш код работал с будущими версиями.

Другие вопросы по тегам