【发布时间】:2020-06-22 21:35:15
【问题描述】:
我想收集 reshape 宽表到长表。我想收集的列有一个模式。现在我只能通过他们的位置来收集他们。我怎样才能改变它以通过列名中的模式来收集它们?请仅使用收集功能。
我已经包含了一个示例数据集,但是在实际数据集中还有更多列。因此,我想收集所有列:
- 以
f或m开头 -
后跟一个OR两个数字
输入(头(test1,1)) 结构(列表(开始日期 = “2019-11-06”,id = “POL55”,m0_9 = NA_real_, m10_19 = NA_real_,m20_29 = NA_real_,m30_39 = NA_real_, m40_49 = 32,m50_59 = NA_real_,m60_69 = NA_real_,m70 = NA_real_, f0_9 = 32, f10_19 = NA_real_, f20_29 = NA_real_, f30_39 = NA_real_, f40_49 = NA_real_,f50_59 = NA_real_,f60_69 = NA_real_, f70 = NA_real_), row.names = c(NA, -1L), class= c("tbl_df", "tbl", "data.frame"))
df_age2 % 聚集(age_cat,计数,m0_9:f70) df_age2
预期输出(将有更多未收集的列)。 count 当然应该算...
startdate id age_cat count
<chr> <chr> <chr> <dbl>
1 2019-11-06 POL55 m0_9 NA
2 2019-11-06 POL56 m0_9 NA
3 2019-11-06 POL57 m0_9 NA
4 2019-11-06 POL58 m0_9 NA
5 2019-11-06 POL59 m0_9 NA
6 2019-11-06 POL60 m0_9 NA
7 2019-11-06 POL61 m0_9 NA
8 2019-11-06 POL62 m0_9 NA
9 2019-11-06 POL63 m0_9 NA
10 2019-11-06 POL64 m0_9 NA
【问题讨论】: