首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dplyr -同一列中的连续事件,标签取决于事件的#

问dplyr -同一列中的连续事件,标签取决于事件的#
EN

Stack Overflow用户
提问于 2018-05-03 17:27:01
回答 2查看 128关注 0票数 0

我希望使用R的dplyr和data.table来计数同一列(Temperature)中连续出现的次数,和将连续事件>3标记为“丢弃”。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-03 17:36:24

将OP的解决方案扩展为同时使用dplyr和data.table的选项如下:

代码语言:javascript
复制
library(dplyr)
library(data.table)

df %>% group_by(Store,RTU) %>% mutate(Flag = rleid(Temperature)) %>%
  group_by(Flag) %>%
  mutate(Flag_Temperature_check = ifelse(row_number() <= 3, "Ok","Discard"))

# # A tibble: 18 x 6
# # Groups: Flag [6]
# Time Store   RTU Temperature  Flag Flag_Temperature_check
# <int> <int> <int>       <int> <int> <chr>                 
# 1     1  1000     1          54     1 Ok                    
# 2     2  1000     1          54     1 Ok                    
# 3     3  1000     1          54     1 Ok                    
# 4     4  1000     1          54     1 Discard               
# 5     5  1000     1          54     1 Discard               
# 6     6  1000     1          56     2 Ok                    
# 7     7  1000     1          57     3 Ok                    
# 8     8  1000     1          50     4 Ok                    
# 9     9  1000     1          50     4 Ok                    
# 10    10  1000     1          50     4 Ok                    
# 11    11  1000     1          50     4 Discard               
# 12    12  1000     1          50     4 Discard               
# 13    13  1000     1          61     5 Ok                    
# 14    14  1000     1          61     5 Ok                    
# 15    15  1000     1          61     5 Ok                    
# 16    16  1000     1          61     5 Discard               
# 17    17  1000     1          61     5 Discard               
# 18    18  1000     1          58     6 Ok 
票数 1
EN

Stack Overflow用户

发布于 2018-05-03 17:40:46

使用data.table

代码语言:javascript
复制
library(data.table)
setDT(df)
df[, 
    Comment := ifelse(seq_len(.N) <= 3, 'OK', 'Discard'), 
    .(Store, RTU, rleid(Temperature))
][]
#    Time Store RTU Temperature Comment
# 1:    1  1000   1          54      OK
# 2:    2  1000   1          54      OK
# 3:    3  1000   1          54      OK
# 4:    4  1000   1          54 Discard
# 5:    5  1000   1          54 Discard
# 6:    6  1000   1          56      OK
# 7:    7  1000   1          57      OK
# 8:    8  1000   1          50      OK
# 9:    9  1000   1          50      OK
#10:   10  1000   1          50      OK
#11:   11  1000   1          50 Discard
#12:   12  1000   1          50 Discard
#13:   13  1000   1          61      OK
#14:   14  1000   1          61      OK
#15:   15  1000   1          61      OK
#16:   16  1000   1          61 Discard
#17:   17  1000   1          61 Discard
#18:   18  1000   1          58      OK
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50160779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档