Ifelse используя А - PullRequest
       2

Ifelse используя А

0 голосов
/ 10 января 2019

У меня есть образец данных ниже:

Col1    Col2    Col3
   A       6       9  
   B       7      10
   C       8      11
   C       9      12
   D      10      13

Как мне сделать оператор ifelse, который говорит: «Если Col1 не имеет значений A и B, тогда сделайте Col3 = Col2, если нет, сохраните исходные значения».

Окончательный ожидаемый результат:

Col1    Col2    Col3
   A       6       9  
   B       7      10
   C       8       8
   C       9       9
   D      10      10

Это была моя попытка, но она не сработала:

df$Col3 <- ifelse(df$Col1!="A" & df$Col1!="B", df$Col2, df$Col3)

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Вот верный ответ на ваш вопрос:

Почему операторы ifelse R не могут возвращать векторы?

Что касается кода, который будет работать, case_when - гораздо более полезная реализация

library(dplyr)

df %>%
  mutate(Col3 = case_when(
    Col1 %in% c("A","B") ~ Col3,
    TRUE ~ Col2
    )
  )
0 голосов
/ 10 января 2019
library(dplyr)    
df %>%
  mutate(Col3 = ifelse(Col1 %in% c("A","B"),Col3,Col2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...