来自两个不同表的值的总和

时间:2019-05-09 13:45:14

标签: r dplyr

我对从具有相同列名的不同表中添加行有疑问。我有两个表的时间序列,值8760行(全年)。

表1

Name    Year    Month   Day Hour    Value
Plant_1 2020    1   1   1   10
Plant_2 2020    1   1   1   20
Plant_3 2020    1   1   1   30
Plant_1 2020    1   1   2   40
Plant_2 2020    1   1   2   50
Plant_3 2020    1   1   2   60

表2

Name    Year    Month   Day Hour    Value
Plant_x 2020    1   1   1   1
Plant_y 2020    1   1   1   2
Plant_z 2020    1   1   1   3
Plant_x 2020    1   1   2   4
Plant_y 2020    1   1   2   5
Plant_z 2020    1   1   2   6

我想要的是像同一时间段内所有植物的价值总和

Year    Month   Day Hour    Value
2020    1   1   1   66
2020    1   1   2   165

我不在乎植物的名称,但需要在每年的每个小时获取总值的总和。我试图做这样的事情,但不适用于两个以上的表,并且我有9到10个这样的表。谁能帮助我改进此代码或我可以使用的任何其他功能?

SumOfValue <- Table1%>% 
                full_join(Table2) %>% 
                group_by (Year,Month,Day,Hour) %>% 
                summarise(Value=sum(Value))

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

看起来您的两个数据框具有相同的确切格式,因此您可以rbind对其进行获取,然后按YearMonthDay和{ {1}}。

Hour

数据

df = rbind(a,b)%>%group_by(Year,Month,Day,Hour)%>%summarise(Value=sum(Value))

# Alternative as suggested by Sotos
bind_rows(a, b) %>%group_by(Year,Month,Day,Hour)%>%summarise(Value=sum(Value))

# A tibble: 2 x 5
# Groups:   Year, Month, Day [?]
   Year Month   Day  Hour Value
  <int> <int> <int> <int> <int>
1  2020     1     1     1    66
2  2020     1     1     2   165