【发布时间】:2022-01-22 06:34:55
【问题描述】:
我正在尝试将我的数据集从宽格式转换为长格式,但它没有按预期工作。我的数据集有列rowid, arrest1, arrest2, ..., arrest10, lien1, lien2, ..., lien10,看起来像这样:
rowid arrest1 arrest2 ... lien1 lien2 ...
1 1/1/2008 NA 2/2/2009 NA
我正在尝试获取一个长数据集,其中我有一个取值 1-10 的时间变量和包含日期的单独变量 arrest 和 lien。我尝试了以下代码,但我的时间变量取值 0-9,除了 arrest 和 lien 变量之外,还有 arrest1 和 lien2。 names_pattern 参数肯定有问题。
df_long <- df_wide %>%
select(rowid, lien1:lien10, arrest1:arrest10) %>%
pivot_longer(-rowid,
names_to = c(".value", "time"),
names_pattern = "(\\w+).*?(\\d{1,2})")
以下是一些示例数据:
structure(list(rowid = c(9317L, 31447L, 37939L, 40198L, 19346L
), arrest1 = structure(c(NA_real_, NA_real_, NA_real_, NA_real_,
NA_real_), class = "Date"), arrest2 = structure(c(NA_real_, NA_real_,
NA_real_, NA_real_, NA_real_), class = "Date"), arrest3 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), arrest4 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), arrest5 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), arrest6 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), arrest7 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), arrest8 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), arrest9 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), arrest10 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), lien1 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), lien2 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), lien3 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), lien4 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), lien5 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), lien6 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), lien7 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), lien8 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), lien9 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date"), lien10 = structure(c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), class = "Date")), row.names = c(NA,
-5L), class = c("tbl_df", "tbl", "data.frame"))
【问题讨论】: