#r #dplyr #case-when
#r #dplyr #случай, когда
Вопрос:
Я пытаюсь создать новый столбец в своем фрейме данных, который будет содержать только те приемники, которые мы настроили в одном из них. Я проверил другие страницы здесь, но я все еще получаю ту же ошибку:
<ошибка / dplyr:::mutate_error> Проблема с mutate()
вводом ER
. x Случай 1 ( Receiver %in% c("1326", "1315", "1314", "1321", "1404", "1318", "1325", "1313...
) должен быть двусторонней формулой, а не логическим вектором. я ввожу ER
case_when(...)
. Обратная трассировка: запустите rlang::last_trace()
, чтобы увидеть полный контекст.
Я пробовал:
ev<-ev %>%
select(Receiver) %>%
mutate(ER=case_when(c(Receiver=="1315"|
Receiver=="1314"|
Receiver=="1321"|
Receiver=="1404"|
Receiver=="1318"|
Receiver=="1325"|
Receiver=="1313"|
Receiver=="1323"|
Receiver=="1324"|
Receiver=="1320"|
Receiver=="1319"|
Receiver=="1317")))
И:
ev<-ev %>%
mutate(ER=case_when(Receiver %in% c("1326", "1315", "1314", "1321", "1404", "1318", "1325", "1313", "1323", "1324", "1320", "1319", "1317")))
Любая помощь, показывающая мне, где я ошибся, очень ценится.
Ответ №1:
Давайте предположим, что у вас есть два исследования, study_A
и study_B
. Затем вам нужно добавить заменяющие значения, например, только для двух заданных вами строк:
ev <- ev %>%
mutate(ER = case_when(Receiver == "1326" ~ "study_A",
Receiver == "1315" ~ "study_B"))
Комментарии:
1. Тогда я вижу, что я делаю неправильно. Спасибо. В этом случае было бы лучше просто использовать filter() для извлечения всех получателей, которые я хочу, в новый фрейм даты? Во фрейме данных нет ничего, что отличало бы получателей от разных сайтов.
2. Зависит от того, сколько отдельных фреймов данных вы хотите сгенерировать. Я предполагаю, что по одному для каждого из ваших исследований, верно? Тогда, конечно, проще просто использовать filter() для хранения данных, относящихся к конкретным получателям.