glue | 关于胶水函数用法的几个例子

本文介绍了R语言中tidyverse系列的glue工具包,展示了如何使用胶水函数glue()动态创建数据框中的字符串。通过实例解释了glue_col()用于调整字体格式,glue_collapse()用于合并向量,以及如何在字符串中运行函数。此外,还演示了自定义起始和结束符号的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇来介绍一个并不是很常用的功能——胶水函数glue(),它来自glue工具包,属于tidyverse系列(https://glue.tidyverse.org/)。

library(glue)

比如,有如下包含两个变量的数据框:

dta <- data.frame(name = c("张三", "李四", "王五"),
                  age = c(24, 27, 22))
dta
##   name age
## 1 张三  24
## 2 李四  27
## 3 王五  22

使用胶水函数可以实现以下功能:

library(tidyverse)
library(magrittr)
dta %<>%
  mutate(intro = glue(
    "我的名字叫{name},我今年{age}岁了"
  ))
dta$intro
## 我的名字叫张三,我今年24岁了
## 我的名字叫李四,我今年27岁了
## 我的名字叫王五,我今年22岁了

通过上述例子,相信各位读者已经能够理解胶水函数的基本功能和用法了。

胶水函数还有如下几个变体:

  • glue_col()函数可以调整字体的格式

library(crayon)
dta %<>%
  mutate(intro = glue_col(
    "我的名字叫{red {name}},我今年{italic {age}}岁了"
  ))
dta$intro
2a4531fe9b508f9baedd133cb6697a2e.png
  • glue_collapse()针对向量使用

comb <- glue_collapse(dta$name, sep = ",", last = "和") 
comb
## 张三,李四和王五

glue("参加此次活动的有{comb}等{length(dta$name)}位同学")
## 参加此次活动的有张三,李四和王五等3位同学

上例还展现了胶水函数的一个功能,即可以实现在字符串中运行函数。这里再单独将其拿出来对比一下:

"{length(dta$name)}"
## [1] "{length(dta$name)}"

glue("{length(dta$name)}")
## 3

胶水函数除了使用大括号"{}"外,还可以进行自定义。它的完整语法结构如下:

glue(
  ...,
  .sep = "",
  .envir = parent.frame(),
  .open = "{",
  .close = "}",
  .na = "NA",
  .transformer = identity_transformer,
  .trim = TRUE
)

通过.open.close两个参数可以自定义起始和结束符号,举例如下:

dta %<>%
  mutate(intro = glue(
    "我的名字叫{<name>},我今年{<age>}岁了",
    .open = "<", .close = ">"
  ))
dta$intro
## 我的名字叫{张三},我今年{24}岁了
## 我的名字叫{李四},我今年{27}岁了
## 我的名字叫{王五},我今年{22}岁了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值