统计r中大数据中发生的事件数

统计r中大数据中发生的事件数,r,R,你好,我有一个很大的数据集,其中一部分可能看起来像这样 Seconds <- c(2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24) B<- c(1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1) C<-c(50, 60, 62, 65, 80, 60, 68, 66, 60, 69, 70, 89) mydata<- data.frame(Seconds, B, C) 我被困在这类数据的分析中。直奔问题,我需要

你好,我有一个很大的数据集,其中一部分可能看起来像这样

Seconds <- c(2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24)
B<- c(1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1)
C<-c(50, 60, 62, 65, 80, 60, 68, 66, 60, 69, 70, 89)
mydata<- data.frame(Seconds, B, C)
我被困在这类数据的分析中。直奔问题,我需要 我们可以做的次数C

 with(mydata, sum(C<80 & Seconds>=6 & B!=0))
 #[1] 4
也可能是

 library(data.table)
 setDT(mydata)[Seconds>=6 & B!=0, sum(C<80), rleid(B)]
我们能做到

 with(mydata, sum(C<80 & Seconds>=6 & B!=0))
 #[1] 4
也可能是

 library(data.table)
 setDT(mydata)[Seconds>=6 & B!=0, sum(C<80), rleid(B)]

我想提出这个基于适度的解决方案

# Libs
Vectorize(require)(package = c("dplyr", "magrittr"),
                   char = TRUE)
# Summary
mydata %<>%
  mutate(criteria = ifelse(Seconds >= 6 & C < 80, TRUE, FALSE)) %>% 
  group_by(criteria) %>% 
  tally()

我想提出这个基于适度的解决方案

# Libs
Vectorize(require)(package = c("dplyr", "magrittr"),
                   char = TRUE)
# Summary
mydata %<>%
  mutate(criteria = ifelse(Seconds >= 6 & C < 80, TRUE, FALSE)) %>% 
  group_by(criteria) %>% 
  tally()


如果您提供一些代码来重新创建您的示例,并将其作为“第二种情况下的秒数”是很有帮助的,不是吗2@akrun谢谢,是的,那是个错误C@JonGrub我已经根据你的评论编辑了这个问题。很抱歉,这是我在这个网站上的第一个问题,评论也会很有帮助。如果你提供一些代码来重新创建你的示例,作为“第二个案例的秒数,不是吗?”2@akrun谢谢,是的,那是个错误C@JonGrub我已经根据你的评论编辑了这个问题。抱歉,这是我在这个网站上的第一个问题,评论也会很有帮助。这在不同的情况下似乎不起作用,比如C@M.Madhu可能是您描述问题的方式不清楚。对于您文章中的第二个案例,我得到了一个计数2。确切的问题是:C列中的timesevents值在连续超过10秒的时间内保持在80以下整个数据中超过5行。在我的实际数据中,我有322375行,秒值高达644750。我希望我能很好地解释我的问题。@M.Madhu我理解描述,但您结果中的预期输出不一样。您可以将N10C从6ht数到第11排,使用CTS的时间超过10秒。这似乎不适用于不同的条件,如C@M.Madhu可能是您描述问题的方式不清楚。对于您文章中的第二个案例,我得到了一个计数2。确切的问题是:C列中的timesevents值在连续超过10秒的时间内保持在80以下整个数据中超过5行。在我的实际数据中,我有322375行,秒值高达644750。我希望我能很好地解释我的问题。@M.Madhu我理解描述,但您结果中的预期输出不一样。您可以从6ht数到第11行N10C,使用C时超过10秒