我有一个监测患者生命体征变化的数据框。
然后使用交通灯系统(绿色,琥珀色和红色)对读数进行分类。
我目前正在使用rleid
函数将组ID变量添加到我的数据框中。
然后,我可以将数据在红色类别中出现的次数分开,并且可以执行以下操作:
计算出每个事件的持续时间
最小和最大读数等等。
但是,我想将12小时内发生的任何红色类别(46个数据点)合并。
采用以下示例:
Date=seq(as.POSIXct("2015-01-01 00:00:00"), as.POSIXct("2015-01-31 23:45:00"), by="15 min")
Data=c(rnorm(750,1,2),rnorm(100,4,2), rnorm(10,1,1),rnorm(50,4,2.5),rnorm(500,0,1),rnorm(600,6,2),rnorm(26,1,2),rnorm(940,6.5,2))
Class=c(rep("Green",750), rep("Red",100),rep("Green",10),rep("Red",50), rep("Green",500),rep("Red",600),rep("Green",26),rep("Red",940))
DF=data.frame(Date,Data,Class)
library(data.table)
library(ggplot2)
DF$GroupID=rleid(DF$Class)
ggplot(DF,aes(Date,Data,colour=Class,group=1))+geom_line()
在我的数据框中,我有4个红色群集,
但我希望只有两个“红色”组,因为群集之间的数据点少于46个“绿色”。
有没有办法指定这个?
答案 0 :(得分:2)
我们可以使用每个绿色和红色组的行数,并且当绿色组的行数小于46时,将其更改为红色
为了确保之前的群组是“红色”,我们可以添加一列来告诉我们“' Class'上一组
Preferences