【问题标题】:labelling column names in summary dynamically动态地在摘要中标记列名
【发布时间】:2022-11-22 16:29:31
【问题描述】:

我想动态地标记汇总表的名称,以便它可以采用已经定义的名称。

所以在这里我动态地制作 q25 名称,就好像我需要以不同的方式显示 q25 然后我可以相应地显示。

df <- data.frame(Name = c("asdf","kjhgf","cvbnm","rtyui","cvbnm","jhfd","cvbnm","sdfghj","cvbnm","dfghj","cvbnm"), 
                 sale=c(27,28,27,16,14,25,14,14,19,18,28), 
                 city=c("CA","TX","MN","NY","TX","MT","HU","KL","TX","SA","TX"), 
                 Dept = c("HH","MM","NN","MM","AA","VV","MM","HU","JJ","MM","ZZ")) 
 
percentile25 <- "25th Percentilen" 
 
t1<-function(dataset,var,name,p25=getOption("percentile25", default = "25th percentile")){ 
  var <- rlang::parse_expr(var)  
   
  tabl1<- dataset %>% filter(!is.na(!!var)) %>% summarise( 
    q25 = quantile(!! var,  type=6, probs = seq(0, 1, 0.25), na.rm=TRUE)[2], 
    N = sum(!is.na(!!var))) 
  summ_tab<-tabl1 %>%   
    mutate(" "= !!name, 
           q25 = q25)  
  summ_tab <- summ_tab %>%  dplyr::rename( 
      q25=!!p25) 
  summ_tab <- summ_tab %>% select(" ",everything(),N) 
  summ_tab 
} 
 
t1(data = df,var = "sale",name = "listd")

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    问题是在dplyr::rename 中,新名称应该在左轴上,旧名称在右轴上。此外,您必须使用特殊赋值运算符:=,即dplyr::rename(!!p25 := q25)

    library(dplyr)
    
    t1 <- function(dataset, var, name, p25 = getOption("percentile25", default = "25th percentile")) {
      var <- rlang::parse_expr(var)
    
      tabl1 <- dataset %>%
        filter(!is.na(!!var)) %>%
        summarise(
          q25 = quantile(!!var, type = 6, probs = seq(0, 1, 0.25), na.rm = TRUE)[2],
          N = sum(!is.na(!!var))
        )
      summ_tab <- tabl1 %>%
        mutate(
          " " = !!name,
          q25 = q25
        )
      summ_tab <- summ_tab %>% dplyr::rename(
        !!p25 := q25
      )
      summ_tab <- summ_tab %>% select(" ", everything(), N)
      summ_tab
    }
    
    t1(data = df, var = "sale", name = "listd")
    #>         25th percentile  N
    #> 1 listd              14 11
    

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-26
      • 2012-12-07
      相关资源
      最近更新 更多