如何用tidyr::unite的sep参数为第二列添加闭合双括号?
给合并后的第二列添加闭合括号的实现方法
仅靠tidyr::unite()的sep参数无法实现需求,因为sep只能设置两列之间的分隔符,没法为合并后的最后一列添加闭合的)。以下是几种可行的实现方式:
方法一:先给第二列添加括号再合并
先通过paste0()给标准差列包裹括号,再用unite()合并两列:
library(tidyr) library(dplyr) mtcars %>% summarise(mean = mean(mpg), sd = paste0("(", sd(mpg), ")")) %>% unite('A', 1:2, sep = ' ')
方法二:合并后补全闭合括号
先用unite()按原逻辑合并,再通过mutate()给结果追加闭合括号:
library(tidyr) library(dplyr) mtcars %>% summarise(mean = mean(mpg), sd = sd(mpg)) %>% unite('A', 1:2, sep = ' (') %>% mutate(A = paste0(A, ")"))
方法三:直接在汇总阶段组合结果
跳过unite(),直接在summarise()里用paste0()完成拼接:
library(dplyr) mtcars %>% summarise(A = paste0(mean(mpg), " (", sd(mpg), ")"))
以上三种方法都能得到你期望的输出:
A 1 20.090625 (6.0269480520891)
内容的提问来源于stack exchange,提问作者12666727b9
相关产品推荐
相关产品推荐

