R合并2个具有相似变量的data.frames

时间:2015-01-21 17:57:00

标签: r

是否可以合并两个data.frame而两个df中没有完全相同的变量。

示例:

df1 <-  data.frame(C=c("1Q","4R"),B= c("A","plane"))
df <-  data.frame(A=c(1,2),B=c("A (Inc", "plane (Inc)"))

> df
#  A           B
#1 1      A (Inc
#2 2 plane (Inc)

> df1
#   C     B
#1 1Q     A
#2 4R plane

是否可以合并df1和df?在这里,我不想预先修改dfs中的数据以进行匹配。我希望合并丢弃(Inc),同时将其保留在dfs中。在这个愚蠢的例子中,一个明显的解决方案是cbind(),但它确实是我正在寻找的合并。

我合并的data.frame将是:

df

#    C     B A           B
# 1 1Q     A 1      A (Inc
# 2 4R plane 2 plane (Inc)

1 个答案:

答案 0 :(得分:1)

您可以这样继续:

> merge(df1,transform(df, B = gsub("[[:space:]]*\\(Inc.*$","",df$B), B1=df$B))
      B  C A          B1
1     A 1Q 1      A (Inc
2 plane 4R 2 plane (Inc)