r - R,计算数据框中的非缺失日期,将计数作为列返回
问题描述
我有这个数据:
Times<-structure(list(record_id = c(1, 2, 3, 4, 5, 6), Date1 = structure(c(17385,
17959, 17267, 17204, 17063, 18436), class = "Date"), Date2 = structure(c(17689,
18001, NA, 17255, 17076, 18471), class = "Date"), Date3 = structure(c(NA,
NA, NA, NA, 18052, 18499), class = "Date")), row.names = c(NA,
-6L), class = c("tbl_df", "tbl", "data.frame"))
我想做的是计算每一行中存在的日期数(没有丢失),并将其作为新列中的计数返回。
实际数据框在每个目标列之间有更多列,因此我希望能够明确命名我正在计算的列。
有任何想法吗?
解决方案
我不确定您的第二个要求,但请检查这是否适合您:
library(tidyr)
library(dplyr)
Times %>% pivot_longer(cols = starts_with('Date'), names_to = 'Date') %>%
group_by(record_id) %>% mutate(Count = sum(!is.na(value))) %>%
pivot_wider(id_cols = c(record_id,Count), names_from = Date, values_from = value )
# A tibble: 6 x 5
# Groups: record_id [6]
record_id Count Date1 Date2 Date3
<dbl> <int> <date> <date> <date>
1 1 2 2017-08-07 2018-06-07 NA
2 2 2 2019-03-04 2019-04-15 NA
3 3 1 2017-04-11 NA NA
4 4 2 2017-02-07 2017-03-30 NA
5 5 3 2016-09-19 2016-10-02 2019-06-05
6 6 3 2020-06-23 2020-07-28 2020-08-25
推荐阅读
- rest - 包含外键 OnToMany 映射的 POST REST 请求
- excel - VBA:循环文件系统并查找最新文件
- javascript - 在哪里调用 AsyncStorage.getItem() 函数以在 react-native 中加载保存的数据?
- apache-spark - 如何在火花中直接流(kafka)JSON文件并将其转换为RDD?
- android - 邮箱验证后登录时如何判断用户是否为新用户
- javascript - 根据从最早到最新的日期将对象插入数组
- php - 如何组合或合并单个数组中的多个值?
- r - Rstudio 的“在文件中查找”中的正则表达式
- ios - HERE iOS sdk - 操作本地化
- javascript - 在 Javascript 中初始化数组的更聪明的方法