Случай для dplyr
:
library(dplyr)
a <- data.frame(col1=c(1, 2),col2=c(10,11))
a %>%
mutate(col3=case_when(col1==1 ~ col2,
col1==2 ~ 0),
col4=case_when(col1==2 ~ col2,
col1==1 ~ 0))
> col1 col2 col3 col4
>1 1 10 10 0
>2 2 11 0 11
Это заполнит col3 и col4 NA
, если col1 не равно ни 1, ни 2. Оператор ifelse, такой как Анатолий, являетсятакже возможно, но, по моему мнению, это не должно быть так вообще.
library(dplyr)
a <- data.frame(col1=c(1, 2),col2=c(10,11))
a %>%
mutate(col3=ifelse(col1==1, col2,
ifelse(col1==2, 0, NA)),
col4=ifelse(col1==1, 0,
ifelse(col1==2, col2, NA)))