时间趋势分析?

时间:2018-04-04 08:24:03

标签: r function time

我有一个数据库,其中每个人在一段时间内对某个测试进行了多次评估:

id, time, test
1,01/01/2000,40
1,05/03/2001,42
1,12/08/2006,44
2,03/03/1999,34
2,04/05/2001,34
2,03/07/2003,36
3,04/08/2007,40
3,05/09/2007,44
3,06/09/2012,48 

我想知道每个人是否经历了任何高原(即在时间内连续测试的相同值),以及这些人是多长时间(表示为天数)。

任何人都可以帮助我吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用基础R rle来实现此目的。如,

by(df, df$id, function(x) {
  d <- as.data.frame(t(do.call(rbind, rle(df$scale))))
  d[d$lengths > 1, ]
  })

df$id: 1
  lengths values
4       2     34
--------------------------------------------------------------------------------------------- 
df$id: 2
  lengths values
4       2     34
--------------------------------------------------------------------------------------------- 
df$id: 3
  lengths values
4       2     34