当变量低于阈值时截断数据集

时间:2017-01-18 14:19:21

标签: r

我希望找到每个记录变量hb低于90的那一天。我可以找到x = min

的那一天
f <- function(x) 1:length(x) <= which.min(x)
ind <- as.logical(ave(df$hb, df1$ id, FUN=f))
dfhb <- (df [ind, ])
maxday <- dfhb %>% group_by(id) %>% summarise(daymax = last(day))

然而,我不能得到hb&lt; 90

f2 <- function(x) 1:length(x) <= which(x<=90)
ind <- as.logical(ave(df$hb, df$id, FUN=f2))
dfhb <- (df [ind, ])
maxday <- dfhb %>% group_by(id) %>% summarise(daymax = last(day))
summary(maxday$daymax)

我非常感谢你的建议,bw Annemarie

id  day hb
1   1   95
1   2   NA
1   3   91
1   4   89
2   1   98
2   2   87
2   3   84
3   1   89
3   2   92
3   3   89

1 个答案:

答案 0 :(得分:1)

这是获得满足阈值的第一个观察值的想法,

df %>% 
 group_by(id) %>% 
 summarise(daymax = which(hb<90)[1]) 

# A tibble: 3 × 2
#     id daymax
#  <int>  <int>
#1     1      4
#2     2      2
#3     3      1