Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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
R 根据数据帧B中的条件,从数据帧A的一列求和_R_Dataframe_Sum - Fatal编程技术网

R 根据数据帧B中的条件,从数据帧A的一列求和

R 根据数据帧B中的条件,从数据帧A的一列求和,r,dataframe,sum,R,Dataframe,Sum,我有以下数据帧(em)(摘录): 然后我有另一个数据帧(UN_ETScat)。此数据帧包含某些但不是全部的扇区因子,这些因子也包含在em数据帧中。鉴于扇区(在第二个数据帧中标记为UN_Cat)包含在UN_ETScat中,我想获得数据帧em中排放量列的总和 UN_Cat Represented_in_ETS_Cat 1 1.A.1.a 20 2 1.A.1.b 20

我有以下数据帧(
em
)(摘录):

然后我有另一个数据帧(
UN_ETScat
)。此数据帧包含某些但不是全部的
扇区
因子,这些因子也包含在
em
数据帧中。鉴于
扇区
(在第二个数据帧中标记为
UN_Cat
)包含在
UN_ETScat
中,我想获得数据帧
em
排放量
列的
总和

       UN_Cat             Represented_in_ETS_Cat
1     1.A.1.a                     20
2     1.A.1.b                     20
3     1.A.2.a                     20
4     1.A.2.b                     20
5     1.A.2.c                     20
6     1.A.2.d                     20
7     1.A.2.e                     20
8     1.A.2.f                     20
9     1.A.2.g                     20
10    1.A.3.e                     20
11    1.A.4.a                     20
12    1.A.4.c                     20
13        1.B                     20
14    1.A.1.b                     21
15    1.A.1.c                     21
16    1.A.2.c                     21
17    1.B.2.c                     21
为此,我创建了变量
x
,它从上面的数据框中表示列
UN_Cat

作为一个外行,我决定这样编写代码:

sum(em$emissions[UN_ETScat$x])
但是,我只得到了
[1]0
,这是不正确的。我做错了什么?谢谢你的帮助和建议


如果我没弄错你的问题,请看:

sum(em$emissions[ em$sector %in% unique(UN_ETScat$UN_Cat) ])

可能会解决您的问题。

@zx8754这是两个独立的数据帧。输出量很大number@bobbel谢谢,听起来不错,但结果是[1]0您能提供一个小示例输入2数据帧,它们共享扇区代码吗?从您的示例输入数据帧中,当然总和为零,因为扇区ID没有重叠。“我已经创建了变量x”。。。另外,请添加您创建
x
的方式和原因?@zx8754我尝试了与这里一些人提供的相同的代码,并将
x
替换为
x
所代表的列的标题。它现在正在工作。我刚刚读了你的帖子,是的,
x
是不必要的,并且是由于任何原因导致了这个问题。再次感谢@zx8754,谢谢,但这里的结果是零。
sum(em$emissions[ em$sector %in% unique(UN_ETScat$UN_Cat) ])