R 基于DF2创建数据帧,超过DF1,行和行相同(特殊合并条件)

R 基于DF2创建数据帧,超过DF1,行和行相同(特殊合并条件),r,merge,combinations,R,Merge,Combinations,在我提交我的问题之前,我寻找了类似的问题,但我没有找到我想要的类似结果。 我有两个数据框表格,行中有相同的日期(年),行中有相同的公司,但每个数据框解释一个变量,表格中的值是一个带有字母的分类: (BM) Dataframe Name | X1992 | X1993 | X1994 | X1995 ---- | ----- | ----- | ----- | ---- xyze | Na | Na | B | B zyea | A | B |

在我提交我的问题之前,我寻找了类似的问题,但我没有找到我想要的类似结果。 我有两个数据框表格,行中有相同的日期(年),行中有相同的公司,但每个数据框解释一个变量,表格中的值是一个带有字母的分类:

(BM) Dataframe 

Name | X1992 | X1993 | X1994 | X1995     
---- | ----- | ----- | ----- | ----
xyze |  Na   |   Na  |   B   |  B
zyea |  A    |   B   |   B   |  A
ddfa |  Na   |   Na  |   D   |  D
arer |  C    |   C   |   A   |  A
zaer |  Na   |   A   |   A   |  B
wxcv |  A    |   A   |   B   |  A
lklj |  B    |   D   |   D   |  D
jgie |  B    |   B   |   C   |  C
azer |  C    |   B   |   C   |  B
lmoz |  Na   |   Na  |   Na  |  A
jzea |  D    |   D   |   D   |  C

(Size) Dataframe

Name | X1992 | X1993 | X1994 | X1995     
----   -----   -----   -----   ----
xyze   Na      Na      D       C
zyea   B       D       A       A
ddfa   Na      Na      D       C
arer   A       A       C       C
zaer   Na      A       A       D
wxcv   C       B       C       A
lklj   C       C       B       D
jgie   D       B       C       D
azer   B       A       A       B
lmoz   Na      Na      Na      C
jzea   A       D       A       B
我希望得到下面这样的结果
(例如:BM“A”和规模“C”的公司)


这是一个与现实的小投影

这可以通过将相应列与
Map

data.frame(Map(function(x,y) x %in% "A" & y %in% "C", BM[-1], Size[-1]))
这里,当'BM'中的column元素为'a'且'Size'为'C'时,输出将是一个
data.frame
,其中逻辑列具有TRUE元素。所有其他案例都是假的


注意:这里,我们假设Na是
Na
,这是一个打字错误这可以通过将相应的列与
Map

data.frame(Map(function(x,y) x %in% "A" & y %in% "C", BM[-1], Size[-1]))
这里,当'BM'中的column元素为'a'且'Size'为'C'时,输出将是一个
data.frame
,其中逻辑列具有TRUE元素。所有其他案例都是假的


注意:这里,我们假设Na是
Na
,它是一个打字错误

,请使用
dput
来显示示例。尝试
Map(函数(x,y)在%c('A','c')中的x%和在%c('A','c')中的y%,BM[-1],Size[-1])
它还可以帮助您阅读整洁的数据。请使用
dput
显示示例。尝试
Map(函数(x,y)在%c('A','c')中为x%,在%c('A','c')中为y%,BM[-1],Size[-1])