- Вы можете попробовать
ifelse
, как показано ниже
df <- within(df,V5 <- ifelse(is.na(R),0,1))
или +
(который преобразует логические значения в числовые)
df <- within(df,V5 <- +!is.na(R))
, так что
> df
A B R V5
1 1 2 3 1
2 4 5 NA 0
- Если вы хотите использовать петли, вы можете попробовать
for (i in seq_along(df$R)){
if( is.na(df$R[i]) ==TRUE ){df$V5[i] = 0}else{df$V5[i]=1}
}
ДАННЫЕ
df <- structure(list(A = c(1L, 4L), B = c(2L, 5L), R = c(3L, NA), V5 = c(NA,
NA)), class = "data.frame", row.names = c(NA, -2L))