#r #dataframe #vector #factors
#r #фрейм данных #вектор #коэффициенты
Вопрос:
У меня есть фрейм данных: df
Person Mood Age
1 1 16//
2 2 32//
3 3 25//
4 4 22//
5 5 28//
6 1 37//
7 2 40//
8 3 26//
9 4 19//
10 5 37//
И у меня есть вектор:
Emotions <- c(Happy, Sad, Angry, Upset, Neutral)
Я хочу преобразовать значения в столбце настроение, поскольку они соответствуют векторным эмоциям
Person Mood Age
1 happy 16//
2 sad 32//
3 angry 25//
4 upset 22//
5 neutral 28//
6 happy 37//
7 sad 40//
8 angry 26//
9 upset 19//
10 neutral 37//
Комментарии:
1. Преобразовать
Mood
в коэффициент и использоватьEmotions
в качестве меток:df$Mood <- factor(df$Mood, labels = Emotions)
Ответ №1:
Есть способ с помощью tidyverse
. Это немного затянуто, но работает, масштабируется и легко для понимания:
library(tidyverse)
df %>%
select(Mood) %>% # Subset columns to just Mood
distinct() %>% # Get unique instances
bind_cols(tibble(Emotions)) %>% # Convert your vector to a tbl and add as a new column
merge(df, by = "Mood", all.y = TRUE) %>% # Merge the original df back in
arrange(Person) %>% # Arrange by Person ID
select(Person, Mood, Age) # Subset to the desired columns
Вывод:
Person Mood Age
1 1 1 16//
2 2 2 32//
3 3 3 25//
4 4 4 22//
5 5 5 28//
6 6 1 37//
7 7 2 40//
8 8 3 26//
9 9 4 19//
10 10 5 37//