Почему данный атрибут исчезает после использования dplyr::mutate?

Я дал некоторые атрибуты для моего фрейма данных.

Это просто спасает меня от набора текста. Я много работаю с dplyr пакет и особенно с mutate команда.

Но после использования mutate в моем фрейме данных атрибуты, которые я дал фрейму данных, исчезают.

Кто-нибудь знает, почему R или dplyr делает это?

Вот небольшой пример:

df <- data.frame(n = seq(1,1000),
       abc = rep(1,1000))
library(dplyr); library(data.table)
df <- df %>% setattr(., "my_attribute", "this thing is 1000 entries long") %>% 
                mutate_at(.vars = "abc", as.character)

... и если я перечислю свои атрибуты, R даст мне:

> str(attributes(df))
List of 3
$ class    : chr "data.frame"
$ names    : chr [1:2] "n" "abc"
$ row.names: int [1:1000] 1 2 3 4 5 6 7 8 9 10 ...

1 ответ

mutate Функция приводит к ожидаемой потере атрибутов (даже если вы привели только один столбец к другому классу.) Так что установите свой атрибут после операции mutate:

df <- df %>% mutate_at(.vars = "abc", as.character) %>% 
                  setattr(., "my_attribute", "this thing is 1000 entries long")
#> names(attributes(df))
#[1] "class"        "names"        "row.names"    "my_attribute"
Другие вопросы по тегам