Сумма из одного столбца кадра данных A на основе условия в кадре данных B - PullRequest
0 голосов
/ 17 октября 2018

У меня есть следующий фрейм данных (em) (отрывок):

Year  emissions  Poll    Country  Sector 
1993  0.00000    CO2     Austria  6 
2006  0.00000    CO2     Austria  6.3  
2015  0.00000    CO2     Austria  6   
1998  12.07760   CO2     Austria  5.1  
1992  11.12720   CO2     Austria  5  
1995  11.11040   CO2     Austria  5  
2006  10.26000   CO2     Austria  5 
1998  0.00000    CO2     Austria  6.4.a

Затем у меня есть другой фрейм данных (UN_ETScat).Этот фрейм данных содержит определенные, но не все sector факторы, которые также содержатся в em фрейме данных.Я хотел бы получить sum столбца emissions в кадре данных em, учитывая, что sector (помеченный UN_Cat во втором кадре данных) содержится в UN_ETScat.

       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, что не соответствует действительности.Что я сделал не так?Спасибо за любую помощь и предложения.

Nordsee

1 Ответ

0 голосов
/ 17 октября 2018

Если я правильно понял ваш вопрос:

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

может решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...