Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.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_Ggplot2_Aggregate - Fatal编程技术网

R 对数据集进行子集和汇总,以准备堆叠面积图的可视化

R 对数据集进行子集和汇总,以准备堆叠面积图的可视化,r,ggplot2,aggregate,R,Ggplot2,Aggregate,我有一个800k行的数据集,每个行都有一个时间戳。数据涵盖一年的时间范围 在准备我想要生成的堆叠面积图时,我想要创建26个子组(例如,两周间隔)。在这些子组中,我想找出5个类中的值的频率 举个例子:在前两周,数值的百分比>x&&y&&以下是一个带有一些虚拟数据的例子: library(dplyr) library(ggplot2) n <- 1000 d <- data.frame(date=as.Date('2010/01/01') + sort(sample(0:364, n,

我有一个800k行的数据集,每个行都有一个时间戳。数据涵盖一年的时间范围

在准备我想要生成的堆叠面积图时,我想要创建26个子组(例如,两周间隔)。在这些子组中,我想找出5个类中的值的频率


举个例子:在前两周,数值的百分比>x&&y&&以下是一个带有一些虚拟数据的例子:

library(dplyr)
library(ggplot2)

n <- 1000
d <- data.frame(date=as.Date('2010/01/01') + sort(sample(0:364, n, replace=TRUE)))
d$x <- runif(n)

# These are the breaks defining your bins of data    
breaks <- c(0, 0.2, 0.4, 0.6, 0.8, 1)

d %>% 
  # create fortnight indicator from Julian day number
  mutate(Fortnight=ceiling(as.numeric(format(date, '%j'))/14)) %>%
  # bin data
  mutate(Class=factor(findInterval(x, breaks))) %>%
  group_by(Fortnight, Class) %>%
  # count per group
  summarise(n=n()) %>%
  # expressed as proportions
  mutate(Proportion=n/sum(n)) %>%
  ggplot(aes(x=Fortnight, y=Proportion, fill=Class)) + 
    geom_area()
库(dplyr)
图书馆(GG2)
n%
#每组计数
总结(n=n())%>%
#以比例表示的
突变(比例=n/和(n))%>%
ggplot(aes(x=两周,y=比例,填充=类别))+
geom_区域()


如果你想清理一下,就过滤掉两周27。例如,在调用
ggplot
之前插入
filter(两周<27)%%>%

如果您向我们展示您的数据(例如,至少是
head
),或者提供一个可复制的示例,会有所帮助。您是对的,我添加了head()的输出@麦克斯·舒马赫:你可能想给朱鲍姆斯一张向上的票,以多谢他一点:——)@steveb-我认为代表们需要投票特权;)@杰鲍姆斯,啊,我明白了,他只是少了几分。谢谢你的更正。很长一段时间以来,我一直从SO那里得到答案,但我对参与这项活动还不熟悉。
library(dplyr)
library(ggplot2)

n <- 1000
d <- data.frame(date=as.Date('2010/01/01') + sort(sample(0:364, n, replace=TRUE)))
d$x <- runif(n)

# These are the breaks defining your bins of data    
breaks <- c(0, 0.2, 0.4, 0.6, 0.8, 1)

d %>% 
  # create fortnight indicator from Julian day number
  mutate(Fortnight=ceiling(as.numeric(format(date, '%j'))/14)) %>%
  # bin data
  mutate(Class=factor(findInterval(x, breaks))) %>%
  group_by(Fortnight, Class) %>%
  # count per group
  summarise(n=n()) %>%
  # expressed as proportions
  mutate(Proportion=n/sum(n)) %>%
  ggplot(aes(x=Fortnight, y=Proportion, fill=Class)) + 
    geom_area()