如果元素存在于R中的列表中,则在新列中添加值



你好,我有两个df,比如

liste<-c("seq2","seq3")

df1

COL1 COL2 
seq1 A
seq2 B
seq3 C
seq4 D
seq5 E

如果liste中存在COL1值,我想在新的COL3中添加ok

并得到:

COL1 COL2 COL3
seq1 A    NA
seq2 B    OK
seq3 C    OK
seq4 D    NA
seq5 E    NA

到目前为止,我尝试了一个循环,但它需要很多时间:

df$COL3<-NA
nb<-1
for (row in 1:nrow(df)) {
if(df[row, "COL1"] %in% liste){
df$COL3[nb]<-"OK"
}
nb<-nb+1
}

尝试%in%添加COL3

within(df, COL3 <- c(NA,"OK")[COL1 %in% liste + 1])

它给出

COL1 COL2 COL3
1 seq1    A <NA>
2 seq2    B   OK
3 seq3    C   OK
4 seq4    D <NA>
5 seq5    E <NA>

最新更新