【发布时间】:2016-03-29 08:41:38
【问题描述】:
我有一个监控患者生命体征变化的数据框。
然后使用交通灯系统(绿色、琥珀色和红色)对读数进行分类。
我目前正在使用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 个。
有什么方法可以指定吗?
【问题讨论】:
标签: r dataframe data.table grouping cluster-analysis