检查子字符串是否出现在单独的列中

Checking if a substring occurs in a separate column

我需要检查我的数据是否包含基准研究中没有的名称。 我遇到的问题是我的名字被截断了,因此通常是基准研究报告的名字的子字符串。

例如,我的数据的截断版本:

      Benchmark             `My Data`
Southern Corp                Avista
American Electric Power      Atmos
Atmos Energy                 Southern
Delta Natural Gas Co Inc     DUET
Avista Corp                  Duke Energy
Duke Energy Corp             American Electric
Pepco Holdings               Nextra Energy

比如你可以看到在"My Data"中,name报为"Southern",但在Benchmark中却报为"Southern Corp",同理,我的数据会报"Duke Energy" 作为 "Duke Energy Corp".

我需要查明我的数据集是否包含基准测试集不包含的任何名称。

所以我需要一个标志或帮助列来告诉我我的数据集包括 "Nextra Energy",但基准测试没有。

我想要这样的输出:

    Benchmark               `My Data`            Not in Benchmark
Southern Corp                Avista                      0
American Electric Power      Atmos                       0
Atmos Energy                 Southern                    0
Delta Natural Gas Co Inc     DUET                        1
Avista Corp                  Duke Energy                 0
Duke Energy Corp             American Electric           0
Pepco Holdings               Nextra Energy               1 

谢谢!

dat$flag <- NA
for(i in 1:nrow(dat)){
  if(any(grepl(dat$Data[i],dat$Benchmark))){
    dat$flag[i] <- 0
  } else{
    dat$flag[i] <- 1
  }
}

dat
                 Benchmark              Data flag
1            Southern Corp            Avista    0
2  American Electric Power             Atmos    0
3             Atmos Energy          Southern    0
4 Delta Natural Gas Co Inc              DUET    1
5              Avista Corp       Duke Energy    0
6         Duke Energy Corp American Electric    0
7           Pepco Holdings     Nextra Energy    1