【发布时间】:2021-06-26 06:36:12
【问题描述】:
我有一个包含如下行的数据框:
dt <- data.frame(id = c(1,1), start = as.Date(c("2020-01-01", "2021-02-01")), end = as.Date(c("2020-12-31", "2022-01-31")), cancelled = as.Date(c("2021-01-10", NA)))
dt
## id start end cancelled
## 1 2020-01-01 2020-12-31 2021-01-10
## 1 2021-02-01 2022-01-31 <NA>
我想通过pivot_longer来获得:
id date action
1 2020-01-01 start
1 2020-12-31 end
1 2021-01-10 cancelled
1 2021-02-01 start
1 2022-01-31 end
我认为这会起作用,但它会产生错误:
dt %>%
pivot_wider(
cols = !id,
names_to = "date",
values_to = "action")
Error: 2 components of `...` were not used.
We detected these problematic arguments:
* `names_to`
* `values_to`
Did you misspecify an argument?
【问题讨论】:
-
使用参数
cols作为-id而不是!id -
您使用的是
pivot_wider而不是pivot_longer。使用pivot_longer(dt, cols = !id, names_to = "date", values_to = "action", values_drop_na = TRUE) -
@RonakShah DOH !!!谢谢!