按行值重命名分组的 tibble 中的列 (dplyr)

标签 r parsing dplyr aggregate grouped-table

如何根据特定的行值重命名分组 dplyr tibble 中的列?下图显示了我的 tibble 处理前的样子以及处理后的样子。

enter image description here

我试过下面的代码,但没能写出能够从“名称”列灵活声明新列名称的列重命名函数。

library(dplyr)

df <- data.frame(
 "splitvar"=c(1,1,1,2,2,3,3,3,3),
 "value"=c(1,4,2,5,6,9,11,13,12),
 "name"=c("Harold","Harold","Harold","Jane","Jane","George","George","George","George"),
 stringsAsFactors=F
)

grouped_tbl <- df %>%
  group_by( splitvar ) %>%
  eval(parse(
    paste0("rename(",unique(name)," = value)")
  ))

相关:Replacement for "rename" in dplyr

最佳答案

像这样:

library(tidyverse)

df %>% 
  split(.$splitvar) %>% 
  map(~rename(., !!unique(.$name) := "value"))

我花了一些时间来理解 quosure 的东西,但试着看看 programming with dplyr

代码的输出是:

$`1`
  splitvar Harold   name
1        1      1 Harold
2        1      4 Harold
3        1      2 Harold

$`2`
  splitvar Jane name
4        2    5 Jane
5        2    6 Jane

$`3`
  splitvar George   name
6        3      9 George
7        3     11 George
8        3     13 George
9        3     12 George

关于按行值重命名分组的 tibble 中的列 (dplyr),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47835867/

相关文章:

r - 每周第二个星期二结束的 2 周总和

r - 如何从 R 的 sqlInterpolate 函数中删除嵌入的引号?

r - R 可视化中 X 轴上的日期不是日期格式

python - 如何解析字符串并返回嵌套数组?

java - 测试硬编码数据的最佳方法

删除包含特定字符串的组

r - 基于唯一字符列时,如何将多行与多列的事件数据合并?

r - 是什么导致我的 R 脚本文本消失?

python - 使用 BeautifulSoup 解析网页上的表格

r - 使用 R 中的 mutate 一次生成多个列