在R中,我的数据框(“ sampledata”)如下所示:
我想将数据转换为可视化的图像,以显示“典型”日中“状态”的分布。理想情况是这样的:
我已尝试按时间戳记分钟对每次出现的“状态”进行计数,但均失败了(错误:无法求和)。我一直在尝试使用ggplot和geom_area进行可视化,但是相信我需要重新构造数据,然后才能起作用。对R非常新(很明显)。很高兴阅读作为背景提供的任何教程或链接,并感谢您可以提供的任何帮助。谢谢!
其他可能/可能没有帮助的信息
答案 0 :(得分:3)
您可以从时间戳中获取小时数,然后按小时计算状态比例:
library(ggplot2)
library(plyr)
#get hours from timestamp
obj$hour <- as.POSIXlt(obj$timestamp)$hour
#get average state proportions per hour
plot_obj <- ddply(obj,.(hour), #take data.frame "obj" and group by "hour"
function(x) with(x,
data.frame(100*table(state)/length(state))))
ggplot(plot_obj, aes(x=hour,y=Freq,fill=state)) +
geom_area()