У меня есть другая проблема, аналогичная предыдущему вопросу здесь . Поскольку это не совсем то же самое, я разместил его как новый вопрос.
Я пытаюсь добавить вектор в качестве нового столбца в таблицу, но мой вектор короче, чем количество строк, поэтому я Я использую if_else()
, чтобы указать условие. Вот пример и моя попытка решения:
library(dplyr)
library(magrittr)
data <- data.frame(
ID = c("a100", "b100", "c100", "d100", "e100", "f100"),
certainty = c("confirmed", "likely", "unsure", "likely", "unsure", "confirmed")
)
data %<>% as_tibble()
add <- c(1, 2)
data %<>%
mutate(new_var =
if_else(certainty == "likely", add, NA_real_))
В настоящее время это дает мне ошибку Error: true must be length 6 (length of condition) or one, not 2
, но, насколько я понимаю, мое состояние имеет длину 2, поскольку sum(data$certainty == "likely")
возвращает [1] 2
.
Результат должен выглядеть следующим образом:
ID certainty new_var
<fct> <fct> <dbl>
1 a100 confirmed NA
2 b100 likely 1
3 c100 unsure NA
4 d100 likely 2
5 e100 unsure NA
6 f100 confirmed NA
Чего мне не хватает? Еще раз спасибо и извините, если это нубский вопрос, но я все еще пытаюсь разобраться с тидиверсом!