Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有R函数用于选择与相邻列中的ID相关联的一列中的最大值?_R_Dplyr - Fatal编程技术网

是否有R函数用于选择与相邻列中的ID相关联的一列中的最大值?

是否有R函数用于选择与相邻列中的ID相关联的一列中的最大值?,r,dplyr,R,Dplyr,这是我正在使用的一个示例。hh_p_id是一个人,tdtrpnum识别他们每天的每次旅行,我想找出每人每天的平均旅行次数。首先,我想将每个个体的最高值分开(可能是过滤?)。我该怎么做 如果my\u data是您的数据框,则: my_data <- my_data %>% group_by(hh_p_id) %>% summarise(avg_per_day = n() / length(unique(date)) my_数据% 分组依据(hh\U p\U id)%>%

这是我正在使用的一个示例。hh_p_id是一个人,tdtrpnum识别他们每天的每次旅行,我想找出每人每天的平均旅行次数。首先,我想将每个个体的最高值分开(可能是过滤?)。我该怎么做


如果
my\u data
是您的数据框,则:

my_data <- my_data %>%
  group_by(hh_p_id) %>%
  summarise(avg_per_day = n() / length(unique(date))
my_数据%
分组依据(hh\U p\U id)%>%
总结(平均每天=n()/长度(唯一(日期))

将为hh_p_id列提供每天的平均出行次数

如果您想计算每人的最小、最大和平均出行次数,这里有一个使用dplyr的解决方案

library(magrittr)
# some sample data
data <- dplyr::tibble(ID=sample(1:10,size=1000,replace=T),
                      DATE=sample(1:20,size=1000,replace=T) %>%
                          as.Date(origin="2020-01-01")) %>%
    dplyr::group_by(ID,DATE) %>%
    dplyr::summarise(CNT=dplyr::n())

# solution to your problem 
data %>%
    dplyr::group_by(ID) %>%
    dplyr::summarise(AVG=sum(CNT)/dplyr::n(),
                  MAX=max(CNT),
                  MIN=min(CNT))
库(magrittr)
#一些样本数据
数据%
截止日期(origin=“2020-01-01”))%>%
dplyr::分组依据(ID,日期)%>%
dplyr::summary(CNT=dplyr::n())
#解决你的问题
数据%>%
dplyr::分组依据(ID)%>%
dplyr::summary(平均=总和(CNT)/dplyr::n(),
最大值=最大值(CNT),
最小值=最小值(CNT))

您可以使用data.table。类似于
dt[,which.max(tdtrpnum),by=hh\u p\u id]