检查字符串是否在dataframe的列中,以及它是否为';如果不是,将其添加到数据帧的末尾,值为0?
我有两个数据帧,如下所示: df1: 和df2:检查字符串是否在dataframe的列中,以及它是否为';如果不是,将其添加到数据帧的末尾,值为0?,r,match,R,Match,我有两个数据帧,如下所示: df1: 和df2: Letter A B C D E 我想找出当df2中的一个字母与df1中的一个字母不匹配时的情况,当这种情况发生时,将df2中的字母添加到df1中,并给它值0 因此: 任何帮助都会很好。我的R一点也不强 编辑: 我尝试过类似的方法,但不起作用: for (i in df1$Name){ for (j in df2$Name){ if(strcmpi(i, j)){ # do nothing } els
Letter
A
B
C
D
E
我想找出当df2中的一个字母与df1中的一个字母不匹配时的情况,当这种情况发生时,将df2中的字母添加到df1中,并给它值0
因此:
任何帮助都会很好。我的R一点也不强
编辑:
我尝试过类似的方法,但不起作用:
for (i in df1$Name){
for (j in df2$Name){
if(strcmpi(i, j)){
# do nothing
} else{
rbind(df1, df2[i,])
}
}
}
df2$Valueresult=merge(df1,df2,all=TRUE)
将为缺失的字母创建行,其值设置为NA
。您可以使用result[is.NA(result)]=0
轻松地将NA
更改为0
。您提到了匹配,df2$Value=df1$Value[match(df1$Letter,df2$Letter)]
Letter Value
A 5
B 0
C 2
D 0
E 3
for (i in df1$Name){
for (j in df2$Name){
if(strcmpi(i, j)){
# do nothing
} else{
rbind(df1, df2[i,])
}
}
}
df2 $Value <- ifelse (df2$Letter %in% df1$Letter, # condition
df1$Value[match(df2$Letter,df1$Letter)], #value if TRUE
0) # itherwise
df2
Letter Value
1 A 5
2 B 0
3 C 2
4 D 0
5 E 3