Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查字符串是否在dataframe的列中,以及它是否为';如果不是,将其添加到数据帧的末尾,值为0?_R_Match - Fatal编程技术网

检查字符串是否在dataframe的列中,以及它是否为';如果不是,将其添加到数据帧的末尾,值为0?

检查字符串是否在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

我有两个数据帧,如下所示:

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
    } else{
      rbind(df1, df2[i,])
    }  
  }
}

df2$Value
result=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