我想检查vector的元素是否是dataframe列的元素。然后在df中添加一列,找到或不发现的标志(此处:0或1)
df<- (rbind(1,2,3,4,5,6))
names(df)[names(df)=="V1"] <- "Element_Id"
elements.to.search<-c(2,4)
# Pseudo-Code
for (i in 1:rowofdf)
if elementof(elements.to.search) in df
df[i,2]=1
else
df[i,2]=0
##########
names(df)[names(df)=="V2"] <- "Flag"
答案 0 :(得分:0)
那么,
我在这里发布了几个小时的解决方案。写完后,有一丝洞察力......它的确有效!
所以在这里分享我的解决方案:
rows<-dim(df)[1]
for(j in 1:rows){
elements.to.search<-c(2,4)
if(((is.element(df[j,1],elements.to.search))))
{
df[j,2] <- 0
}
}
但我总是对不同的方法感到好奇。所以请随意提出不同的解决方案。
答案 1 :(得分:0)
您可以使用data.table
。 (顺便说一句,示例df
是matrix
)
library(data.table)
setDT(list(df))[, Flag:=(V1 %in% c(2,4))+0L][]
# V1 Flag
#1: 1 0
#2: 2 1
#3: 3 0
#4: 4 1
#5: 5 0
#6: 6 0