R 按组列出的返回日期范围
我想按颜色分组并计算该颜色的日期范围。我尝试了R 按组列出的返回日期范围,r,date,aggregate,R,Date,Aggregate,我想按颜色分组并计算该颜色的日期范围。我尝试了groupby(),summary()和aggregate() 我一直在尝试: df <- aggregate(df1[,1], list(df1[,2]), as.numeric(max(df1[,1]) - min(df1[,1]), units="days")) 在阅读了aggregate()文档后,我尝试使用公式=作为最后一个参数,并返回了以下错误: match.fun(fun)中的错误:缺少参数“fun”,没有默认值 df1 %&
groupby()
,summary()
和aggregate()
我一直在尝试:
df <- aggregate(df1[,1], list(df1[,2]), as.numeric(max(df1[,1]) - min(df1[,1]), units="days"))
在阅读了aggregate()
文档后,我尝试使用公式=
作为最后一个参数,并返回了以下错误:
match.fun(fun)中的
错误:缺少参数“fun”,没有默认值
df1 %>%
group_by(df2) %>%
summarise(Range=max(df1) - min(df1))
# A tibble: 2 x 2
df2 Range
<fct> <drtn>
1 blue 19 days
2 red 4 days
df1%>%
分组依据(df2)%>%
总结(范围=最大(df1)-最小(df1))
#一个tibble:2x2
df2范围
1蓝色19天
2红色4天
使用聚合
aggregate(df1~ df2, df1, function(x) diff(range(x)))
请注意,“df1”的列名是“df1”和“df2”,这会造成一些混淆。相反,创建数据可能更好
df1 <- data.frame(x = df1, Group = df2)
require(dplyr)
df001%
总结(最小日期=最小(日期),最大日期=最大(日期))%>%
变异(范围=最大日期-最小日期)%>%
选择(颜色、范围)
#
##tibble:2x2
#颜色范围
#
#1蓝色19
#2红色4
您的列名不是df1
和df2
aggregate(df1~df2,df1,diff)
美丽,谢谢!我尝试了类似的方法,但缺少参数的Range=
形式。
df1 %>%
group_by(df2) %>%
summarise(Range=max(df1) - min(df1))
# A tibble: 2 x 2
df2 Range
<fct> <drtn>
1 blue 19 days
2 red 4 days
aggregate(df1~ df2, df1, function(x) diff(range(x)))
df1 <- data.frame(x = df1, Group = df2)
aggregate(x~ Group, df1, diff)
require(dplyr)
df001 <- as.Date(c('Jul 1', 'Jun 26', 'July 5', 'July 15'), format = '%B %d')
df002 <- c("red", "blue", "red", "blue")
df003 <- data.frame(df001,df002)
df003 %>% rename(dates = df001, colors = df002) %>%
group_by(colors) %>%
summarise(min_date = min(dates), max_date = max(dates)) %>%
mutate(range = max_date - min_date) %>%
select(colors, range)
#
# # A tibble: 2 x 2
# colors range
# <fct> <time>
# 1 blue 19
# 2 red 4