我想遍历数据框中的一列并检查条件,然后替换0或1。代码是:
for (i in v$R){
if( is.na(v$R) ==TRUE ){v$V5 = 0}else{v$V5=1}
}
但是我得到一个错误。名为“ v”的数据帧如下。 V5具有NA值,如果R列中的值为NA,我想用0代替,否则用1代替。我该怎么做?
A B R V5
1 2 3 NA
4 5 NA NA
答案 0 :(得分:1)
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))
答案 1 :(得分:1)
尝试一下:
onerror