#r #spss #r-haven #r-labelled
Вопрос:
Я импортировал некоторые данные SPSS в R, данные помечены, и я хочу отобразить имена меток, а не значения. Я пробовал ниже, но он выводит значения
library(labelled)
library(tidyverse)
cols <- c("White", "Red", "Black", "Green", "Brown", "Pink", "Orange")
letters <- c("D", "E", "F", "G", "H", "I", "J")
# add labels to the color values
tmp <- diamonds %>%
mutate(color = as.character(color)) %>%
set_value_labels(color = setNames(letters, cols))
ggplot(tmp) geom_bar(aes(x=print_labels(color)))
На графике по-прежнему используются значения цвета в качестве оси y, а не метки. Как мы можем построить метки фреймов данных?
Ответ №1:
Основываясь на cols
и letters
, я бы создал для них фрейм данных, а затем объединил (через dplyr::inner_join
) с tmp
, чтобы создать новый столбец с именами, которые вы хотите вдоль оси x.
library(ggplot2)
library(dplyr)
library(tibble)
#Create a dataframe key to get the color names for each category and make a new column with the names.
col_key <- attributes(tmp$color)$labels %>%
as.data.frame() %>%
dplyr::rename(cols = 1) %>%
tibble::rownames_to_column("color")
tmp <- dplyr::inner_join(tmp,
col_key, by = "color")
ggplot(tmp)
geom_bar(aes(x = cols))
Комментарии:
1. Моя проблема заключается в том, что я использую файл данных SPSS с встроенной маркировкой и значениями
2. Почему бы не манипулировать им, как только он перейдет в R? Вы можете настроить рабочий процесс для того, как вы хотите, чтобы рисунок выглядел в R, который может легко работать всякий раз, когда вы вносите обновленный файл из SPSS в R.
3. Возможно, мне придется это сделать, я просто подумал, что должен быть более простой метод. Я не уверен, почему у вас есть ярлыки, когда вы, похоже, не можете получить к ним доступ
4. Причина, по которой я смог их нарисовать, заключается в том, что я не использовал
haven
маркировку. Я просто сделалinner_join
с ключевыми данными (т. Е. буквами и буквами), затем создал новый столбец, а затем использовал его для построения графика.5. Я просто добавил обходной путь, используя те же методы, но извлекая имена из маркировки убежища. Таким образом, когда вы читаете свои данные из SPSS, вы можете легко получить ключ и названия цветов.
Ответ №2:
library(haven)
cols <- c("White", "Red", "Black", "Green", "Brown", "Pink", "Orange")
letters <- c("D", "E", "F", "G", "H", "I", "J")
tmp <- diamonds %>%
mutate(color = as.character(color)) %>%
set_value_labels(color = setNames(letters, cols))
ggplot(tmp) geom_bar(aes(x=as_factor(color)))
Используя библиотеку haven, мы можем использовать команду as_factor(x), которая преобразует метки в факторы