我对从具有相同列名的不同表中添加行有疑问。我有两个表的时间序列,值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))
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
看起来您的两个数据框具有相同的确切格式,因此您可以rbind
对其进行获取,然后按Year
,Month
,Day
和{ {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