我需要在此data.frame中创建一个新的列v4
:
v1<-c(1,2,4,7,9,12,34,56,43)
v2<-c(4,4,9,56,73,457,12,12,5585)
v3<-c(7,7,43,124,415,552,552,12525,99)
df<- data.frame(v1,v2,v3)
诀窍在于,在v2
v4
中存在任何v1
值的情况下,必须1
其余情况下v4
必须2
所以结果将是这样的:
v1<-c(1,2,4,7,9,12,34,56,43)
v2<-c(4,4,9,56,73,457,12,12,5585)
v3<-c(7,7,43,124,415,552,552,12525,99)
v4<-c(2,2,1,2,1,1,2,2,2)
df.solution<- data.frame(v1,v2,v3,v4)
使用基 R
df$v4 <- ifelse(df$v1 %in% df$v2, 1, 2)
编辑:在@NelsonGon的答案中的注释之后修改了答案
这是一个示例答案,但您的逻辑和预期结果不匹配:
建议编辑和OP评论后的最终答案:
library(dplyr)
df %>%
mutate(V4=ifelse(v1%in%v2,1,2))