R:比较数据帧

时间:2015-03-24 09:05:27

标签: r for-loop dataframe

我有2个数据框。一个包含参考数据,一个包含原始数据。 我想在原始数据中添加一个列,基本上说,如果原始数据中存在参考表中的一个项目,则将其标记为1,否则将其保留为零。

原始数据包含3行

HC
HC
HC-HY

参考数据包含1行(我已经简化了这个问题)

HC

代码应该为原始数据中的每一行添加一个新列,因为HC位于所有行中,

以下是我的代码,它不起作用,因为它似乎忽略了HC-HY

for (i in 1:nrow(Raw))
  {
  for (k in 1:nrow(RefTable))
    {
    if (=RefTable[k,1] %in% Raw[i,3]){Raw[i,4] = 1} 
    } 
}

1 个答案:

答案 0 :(得分:1)

如果

rawdata = data.frame(A=c("HC","HC","HC-HY"))
refdata = data.frame(A=c("HC"))

然后

rawdata$test = as.numeric(sapply(X = strsplit(rawdata$A,split = "-",fixed = TRUE), FUN=function(x) any(x %in% refdata$A)))