我看到在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()或其他函数来实现这一点?出于开发的原因,我想使用Rtidyverse基函数,但如果没有办法做到这一点,我愿意接受其他建议.提前感谢任何帮助!

推荐答案

1)try nest_by,其创建具有列表列data中除id之外的所有内容的3行数据框.

library(dplyr)

df |>
  nest_by(id) |>
  reframe(add_row(data, 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

2)或这个,给出相同的输出

df |>
  reframe(add_row(pick(everything()), val = 100), .by = id)

R相关问答推荐

Facet_wrap具有不同bin宽度值的图表

根据固定值范围在tible中添加新行

过滤矩阵以获得R中的唯一组合

基于shiny 应用程序中的日期范围子集xts索引

如何使用stat_extract_all正确提取我的目标值?

如何使用shinyChatR包配置聊天机器人

为什么st_join(ob1,ob2,left = True)返回具有比ob1更多功能的sf对象?

根据R中的另一个日期从多列中 Select 最近的日期和相应的结果

pickerInput用于显示一条或多条geom_hline,这些线在图中具有不同 colored颜色

计算具有奇数日期的运行金额

矩阵的堆叠条形图,条形图上有数字作为标签

如何在分组条形图中移动相关列?

如何在R forestplot中为多条垂直线分配唯一的 colored颜色 ?

ComplexHEAT:使用COLUMN_SPLIT时忽略COLUMN_ORDER

列名具有特殊字符时的循环回归

使用来自嵌套列和非嵌套列的输入的PURRR:MAP和dplyr::Mariate

使用ggplot2中的sec_axis()调整次轴

R仅当存在列时才发生变异

如何在内联代码中添加额外的空格(R Markdown)

位置_道奇在geom_point图中不躲避