#r #r-labelled
Вопрос:
Мне очень нравится упаковка с этикеткой.
У меня есть анализ, в котором есть тонны ярлыков, которые мне нужно сделать. Вместо того, чтобы добавлять их по одному, есть ли способ, чтобы он проходил по всем столбцам и изменял их таким же образом. Например, если бы я хотел сделать их все заглавными буквами. Пожалуйста, обратите внимание, что я надеюсь изменить метку, а не фактическое название столбца.
library(labelled) library(ggplot2) mpg_new lt;- ggplot2::mpg %gt;% set_variable_labels(manufacturer = "Manufacturer") labelled::var_label(mpg_new$manufacturer)
Ответ №1:
Если нам нужно преобразовать в регистр заголовка для всех из них, мы также можем передать имя vector
в set_variable_labels
library(labelled) library(ggplot2) data(mpg) var_labels lt;- setNames(tools::toTitleCase(names(mpg)), names(mpg)) mpg_new lt;- mpg %gt;% set_variable_labels(.labels = var_labels, .strict = FALSE)
-проверка
gt; str(mpg_new) tibble [234 × 11] (S3: tbl_df/tbl/data.frame) $ manufacturer: chr [1:234] "audi" "audi" "audi" "audi" ... ..- attr(*, "label")= chr "Manufacturer" $ model : chr [1:234] "a4" "a4" "a4" "a4" ... ..- attr(*, "label")= chr "Model" $ displ : num [1:234] 1.8 1.8 2 2 2.8 2.8 3.1 1.8 1.8 2 ... ..- attr(*, "label")= chr "Displ" $ year : int [1:234] 1999 1999 2008 2008 1999 1999 2008 1999 1999 2008 ... ..- attr(*, "label")= chr "Year" $ cyl : int [1:234] 4 4 4 4 6 6 6 4 4 4 ... ..- attr(*, "label")= chr "Cyl" $ trans : chr [1:234] "auto(l5)" "manual(m5)" "manual(m6)" "auto(av)" ... ..- attr(*, "label")= chr "Trans" $ drv : chr [1:234] "f" "f" "f" "f" ... ..- attr(*, "label")= chr "Drv" $ cty : int [1:234] 18 21 20 21 16 18 18 18 16 20 ... ..- attr(*, "label")= chr "Cty" $ hwy : int [1:234] 29 29 31 30 26 26 27 26 25 28 ... ..- attr(*, "label")= chr "Hwy" $ fl : chr [1:234] "p" "p" "p" "p" ... ..- attr(*, "label")= chr "Fl" $ class : chr [1:234] "compact" "compact" "compact" "compact" ... ..- attr(*, "label")= chr "Class"
Ответ №2:
Другим вариантом достижения желаемого результата было бы использование labelled::var_label
вот такого:
library(labelled) library(ggplot2) mpg_new lt;- ggplot2::mpg var_label(mpg_new) lt;- stringr::str_to_title(names(mpg_new)) var_label(mpg_new, unlist = TRUE) #gt; manufacturer model displ year cyl #gt; "Manufacturer" "Model" "Displ" "Year" "Cyl" #gt; trans drv cty hwy fl #gt; "Trans" "Drv" "Cty" "Hwy" "Fl" #gt; class #gt; "Class"