R 对数据集进行子集和汇总,以准备堆叠面积图的可视化
我有一个800k行的数据集,每个行都有一个时间戳。数据涵盖一年的时间范围 在准备我想要生成的堆叠面积图时,我想要创建26个子组(例如,两周间隔)。在这些子组中,我想找出5个类中的值的频率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,
举个例子:在前两周,数值的百分比>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()