我看到在dplyr
中,函数cur_data()
已被弃用,取而代之的是pick()
.然而,在try 向分组的数据帧中的每个组添加行时,我不知道如何使用pick()
.我正在清理一些时髦的数据,并且需要在每个组中插入行,这些行传播GROUPING变量值,同时将特定值插入相应的列.
以下是使用cur_data()
生成所需输出的示例代码:
df <- tibble::tribble(
~id, ~val,
"A", 95,
"A", 20,
"A", 45,
"B", 10,
"B", 50,
"C", 80
)
df_new_rows <- df |>
dplyr::group_by(id) |>
dplyr::reframe(tibble::add_row(dplyr::cur_data(), val = 100)) |>
dplyr::ungroup()
下面是所需的输出--已经插入了val
列中包含100
的行:
# A tibble: 9 × 2
id val
<chr> <dbl>
1 A 95
2 A 20
3 A 45
4 A 100
5 B 10
6 B 50
7 B 100
8 C 80
9 C 100
我如何使用pick()
或其他函数来实现这一点?出于开发的原因,我想使用R
或tidyverse
基函数,但如果没有办法做到这一点,我愿意接受其他建议.提前感谢任何帮助!