gpt4 book ai didi

r - 用日期的最大值在 dplyr 中汇总 - R

转载 作者:行者123 更新时间:2023-12-04 12:07:02 25 4
gpt4 key购买 nike

我有以下数据,

data

date ID value1 value2
2016-04-03 1 0 1
2016-04-10 1 6 2
2016-04-17 1 7 3
2016-04-24 1 2 4
2016-04-03 2 1 5
2016-04-10 2 5 6
2016-04-17 2 9 7
2016-04-24 2 4 8

现在我想按 ID 分组并找到 value2 的平均值和 value1 的最新值。从某种意义上说,最新值,我想获取最新日期的值,即在这里我想获取每个 ID 对应的 2016-04-24 值的 value1。我的输出应该是这样的
ID       max_value1      mean_value2
1 2 2.5
2 4 6.5

以下是我正在使用的命令,
data %>% group_by(ID) %>% summarize(mean_value2 = mean(value2))

但我不确定如何做第一个。任何人都可以帮助我在 dplyr 中总结时获得 value1 的最新值吗?

最佳答案

一种方法如下。我的假设是 date是一个日期对象。您想使用 arrange 为每个 ID 安排日期顺序.然后,您按 ID 对数据进行分组.在 summarize ,您可以使用 last()为每个 ID 取最后一个 value1。

arrange(data,ID,date) %>%
group_by(ID) %>%
summarize(mean_value2 = mean(value2), max_value1 = last(value1))

# ID mean_value2 max_value1
# <int> <dbl> <int>
#1 1 2.5 2
#2 2 6.5 4

数据
data <- structure(list(date = structure(c(16894, 16901, 16908, 16915, 
16894, 16901, 16908, 16915), class = "Date"), ID = c(1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L), value1 = c(0L, 6L, 7L, 2L, 1L, 5L, 9L,
4L), value2 = 1:8), .Names = c("date", "ID", "value1", "value2"
), row.names = c(NA, -8L), class = "data.frame")

关于r - 用日期的最大值在 dplyr 中汇总 - R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38732319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com