我在数据框架中设置了一个时间序列(" TotalGuirvidig"),其中我有3个主要感兴趣的列:"日期","动物"和我创建的第三列名为" Daily_Animals",是同一天所有动物计数的总和。我创造了" Daily_Animals" unsing
TotalGuirvidig <- Guirvidig %>% group_by(Date) %>% mutate(Daily_Animals = sum(Animals))
很好,但是我们说日期是07-11-2017,我们观察了40只,23只和17只动物。现在,在Daily_Animals列中,我们得到80次的总和,每次原始观察一次。
我一开始并没有想太多,但我正在将数据框转换为时间序列
GTS <- zoo(TotalGuirvidig$Daily_Animals, order.by=as.Date(TotalGuirvidig$Date, format='%Y/%m/%d'))
ts(GTS)
我注意到同一日期多次观察的日期多次出现,因为同一日期的每次观察都有相同的Daily_Animal总和。
我计划做一些预测,我担心这些重复的每日总和会抛弃我的预测。在建立我的时间序列时,是否有某种方法可以让R忽略同一日期的重复总和?
编辑:以下是数据框的示例
Year Week Date Location Animals From To Notes Daily_Animals
<int> <int> <date> <chr> <int> <chr> <chr> <chr> <int>
1 2010 31 2010-08-01 GUIRVIDIG 580 Bongor – Tchad BANKI NIGERIA RAS 580
2 2010 32 2010-08-08 GUIRVIDIG 780 Glenden Tchad BANKI NIGERIA RAS 780
3 2010 33 NA GUIRVIDIG NA <NA> <NA> <NA> NA
4 2010 34 2010-08-22 GUIRVIDIG 680 Bongor – Tchad BANKI NIGERIA 2 voles 680
5 2010 34 2010-08-23 GUIRVIDIG 880 Glenden Tchad BANKI NIGERIA RAS 880
6 2010 35 2010-08-29 GUIRVIDIG 495 Bongor – Tchad BANKI NIGERIA RAS 495
7 2010 35 2010-08-30 GUIRVIDIG 506 Glenden Tchad BANKI NIGERIA 1 malades 506
8 2010 36 2010-09-06 GUIRVIDIG 262 kijabe-tchad BANKI NIGERIA RAS 262
9 2010 37 2010-09-13 GUIRVIDIG 70 Glenden Tchad BANKI NIGERIA RAS 70
10 2010 38 NA GUIRVIDIG NA <NA> <NA> <NA> NA
# ... with 484 more rows
Edit2:下面是一个实际的例子,它实际上演示了如何编写新列
Year Week Date Location Animals From To Notes Daily_Animals
<int> <int> <date> <chr> <int> <chr> <chr> <chr> <int>
1 2010 31 2010-08-01 GUIRVIDIG 40 Bongor – Tchad BANKI NIGERIA RAS 80
2 2010 32 2010-08-01 GUIRVIDIG 23 Glenden Tchad BANKI NIGERIA RAS 80
3 2010 34 2010-08-21 GUIRVIDIG 17 Bongor – Tchad BANKI NIGERIA 2 voles 80
答案 0 :(得分:0)
如果您不想为每个动物计数保留一行,那么您可能想要使用dplyr :: summarize而不是mutate,因为mutate只会添加一列但会保留所有行?
?summarise
TotalGuirvidig <- Guirvidig %>% group_by(Date) %>% summarise(Daily_Animals = sum(Animals))
或者您可以在mutate之后使用dplyr :: distinct,并选择要保留不同值的列。
?distinct
TotalGuirvidig <- Guirvidig %>% group_by(Date) %>% mutate(Daily_Animals = sum(Animals)) %>%
distinct(Date, .keep_all = TRUE)
有点难以确切地知道什么是最好的,因为在你的示例数据中没有重复的Daily_Animals,所以如果上面的不工作可能会显示一个带有重复项和所需输出的部分?