У меня есть фрейм данных с тремя столбцами: два, чтобы идентифицировать человека, и один, который соответствует ответу человека на вопрос. В этом примере ответы кодируются от 1 до 3 (в виде символов) и могут содержать NA
. Я хотел бы заменить эти значения их истинным значением.
library(tibble)
my_data <- tibble(
first_id = rep(1:2, each = 4),
second_id = rep(rep(letters[1:2], 2), each = 2),
variable = as.character(c(2, 1, NA, 2, 3, 1, 3, NA))
)
# A tibble: 8 x 3
first_id second_id variable
<int> <chr> <chr>
1 1 a 2
2 1 a 1
3 1 b NA
4 1 b 2
5 2 a 3
6 2 a 1
7 2 b 3
8 2 b NA
Значение может иметь различное значение в зависимости от:
столбец first_id
, т. Е. 1 может быть Yes
, если first_id
равно 1 и может быть maybe
, если first_id
равно 2.
столбец second_id
.
К визуализировать легче, подумайте, что этот кадр данных соответствует данным опроса, где first_id
относится к разным раундам, а second_id
- к разным странам.
Поэтому я хотел бы заменить эти значения в соответствии с их first_id
и second_id
. Я хотел бы заменить уникальные значения столбца variable
вектором, потому что у меня много разных значений, и я думаю, что это лучший вариант, чем делать:
my_data$variable[(my_data$first_id == 1 & my_data$second_id == "a" & my_data$variable == "1")] <- "Something"
my_data$variable[(my_data$first_id == 1 & my_data$second_id == "a" & my_data$variable == "2")] <- "Something else"
et c.
Я пытался сделать что-то вроде:
sort(unique(my_data$variable[(my_data$first_id == 1 & my_data$second_id == "a")])) <- c("Something", "Something else")
, но у меня есть ошибка:
Ошибка в сортировке (уникальная (переменная my_data $ [(my_data $ first_id) == 1 & my_data $ second_id ==: невозможно определить проблему "sort <-" </p>
Как заменить уникальные значения подмножества данных на вектор?
Ожидается вывод:
# A tibble: 8 x 3
first_id second_id variable
<int> <chr> <chr>
1 1 a Something else
2 1 a Something
3 1 b NA
4 1 b 2
5 2 a 3
6 2 a 1
7 2 b 3
8 2 b NA