我有好几个月的数据,每天都有每秒的读数。有几个缺失值。数据位于 R 格式的数据框中:
日期值
2015-01-01 100
2015-01-01 300
2015-01-01 350
2015-02-01 400
2015-02-01 50
在我的代码中,这个数据框被称为“组合”并且包含组合$time(用于日期)和组合$value(用于值)。我想按天绘制值,显示按五分位数分类的每个值范围的实例数(例如,每天介于 100 和 200 之间的值的数量、介于 200 和 300 之间的数字等)。我已经将 bin 边界的值定义为下限、上限等。在这个图中,我希望点的大小与当天该范围内值的实例数相对应。
(我制作了该情节的示例图像,但我还没有足够的声望点来发布它!)
我当然没有写出最有效的方法来做到这一点,但我的主要问题是,既然我已经成功地将这些值按天分类,那么如何实际生成绘图。我也喜欢任何关于更好方法的建议。这是我到目前为止的代码:
lim<-c(lowlimit, midlowlimit, midupperlimit, uplimit)
bin <- c(0, 0, 0, 0)
for (i in 2:length(combined$values){
if (is.finite(combined$value[i])=='TRUE'){ # account for NA values
if (combined$time[i]==combined$time[i-1]){
if (combined$value[i] <= lowlimit){
bin[1]=bin[1]+1
i=i+1
}
else if (combined$value[i] > lowlimit && combined$value[i] <= midlowlimit){
bin[2]=bin[2]+1
i=i+1
}
else if (combined$value[i] > midlowlimit && combined$value[i] <= midupperlimit ){
bin[3]=bin[3]+1
i=i+1
}
else if (combined$value[i] > midupperlimit && combined$value[i] <= uplimit){
bin[4]=bin[4]+1
i=i+1
}
else if (combined$skin_temp[i] > uplimit ){
bin[5]=bin[5]+1
i=i+1
}
}
else{
### I know the plotting portion here is incorrect ###
for (j in 1:5){
ggplot(combined$date[i], lim[j]) + geom_point(aes(size=bin[j]))}
i = i+1}
}
}
我非常感谢您提供的任何帮助!