Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/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 按组列出的返回日期范围_R_Date_Aggregate - Fatal编程技术网

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