所以我有一张给人们打电话的次数表。如果有人没有接听,我们会在其他时间尝试再次给他们打电话(如果需要的话,再打电话一次)。每次尝试呼叫都列在同一列中,因此“人员”列具有重复的值。所以像这样:
人 | 通话时间 | 回答 |
---|---|---|
1 | 12:00 | 无人应答 |
2 | 12:12 | 无人应答 |
3 | 12:19 | 回答 |
2 | 18:10 | 无人应答 |
1 | 13:00 | 回答 |
2 | 19:12 | 回答 |
我想拆分数据,以便每人一行包含所有拨打电话的次数,就像这样
人 | 第一次通话 | 第一个答案 | 第二次通话 | 第二个答案 | 第三次通话 | 第三个答案 |
---|---|---|---|---|---|---|
1 | 12:00 | 无人应答 | 13:00 | 回答 | ||
2 | 12:12 | 无人应答 | 18:10 | 无人应答 | 19:12 | 回答 |
3 | 12:19 | 回答 |
我真的很感谢一些帮助,谢谢。
您可以添加一个列来定义人员内每个呼叫的 ID,然后使用
pivot_wider
生成列
library(tidyverse)
df <- tibble(person = c(1, 1, 2, 3, 4, 4, 4))
df$call_time <- rnorm(nrow(df))
df %>%
mutate(call_id = 1:n(), .by = person) %>%
pivot_wider(id_cols = person, names_from = call_id, names_prefix = "call_",
values_from = call_time)
#> # A tibble: 4 × 4
#> person call_1 call_2 call_3
#> <dbl> <dbl> <dbl> <dbl>
#> 1 1 1.26 -0.442 NA
#> 2 2 0.356 NA NA
#> 3 3 0.241 NA NA
#> 4 4 -0.00412 0.926 -1.27
创建于 2024-07-02,使用 reprex v2.1.0