r - 计算具有相同/缺失值的连续行
问题描述
我有一个包含不同传感器测量值的时间序列数据集。传感器软件有一些错误,导致测量缺失。我添加了缺失的测量时间,导致“值”列中的 NA。数据集如下所示:
df <- structure(list(time_id = 1:10, value = c(-1.80603125680195, -0.582075924689333,
NA, NA, -0.162309523556819, NA, NA, NA, 1.6059096288573, NA),
is_missing = c(FALSE, FALSE, TRUE, TRUE, FALSE, TRUE, TRUE,
TRUE, FALSE, TRUE)), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -10L))
df
我想用数字和缺失值对连续行进行分组,同时计算每组中连续行的数量。结果应如下所示:
df %>% mutate(group = c(1, 1, 2, 2, 3, 4, 4, 4, 5, 6),
seq_NA = c(1:2, 1:2, 1, 1:3, 1, 1))
非常感谢您的帮助!
解决方案
这是另一个想法。在这里,我们使用is.na()
捕获 NA 并在出现非 NA 时更改组,即
df %>%
group_by(grp = cumsum(c(1, diff(is.na(value)) != 0))) %>%
mutate(seq_NA = seq(n()))
这使,
# A tibble: 10 x 5 # Groups: grp [6] time_id value is_missing grp seq_NA <int> <dbl> <lgl> <dbl> <int> 1 1 -1.81 FALSE 1 1 2 2 -0.582 FALSE 1 2 3 3 NA TRUE 2 1 4 4 NA TRUE 2 2 5 5 -0.162 FALSE 3 1 6 6 NA TRUE 4 1 7 7 NA TRUE 4 2 8 8 NA TRUE 4 3 9 9 1.61 FALSE 5 1 10 10 NA TRUE 6 1
推荐阅读
- javascript - Jquery 选择器不适用于 ajax 响应
- c# - C# 中是否允许嵌套方法/函数/协程?
- scala - 基于另一列更新火花数据框中的列值
- android - 如何在我的数据类中声明变量以接受 countryInfo 的值(josondata):
- java - 单击时导航不会进入下一个片段
- amazon-web-services - 使用 scp 在 EC2 实例之间传输文件会导致“错误的所有者或权限”
- java - 如何在android java中做音频循环15次
- spring-boot - How to set profile for Spring Application to be used in Minikube
- angular9 - Angular Ivy 编译器、ngtsc、ngcc、ngc、aot、jit、tsc
- python - Microsoft Graph 访问 onenote 作为守护程序服务返回无效范围