You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

gt包fmt_number()如何通过表达式筛选待格式化的指定行?

正确实现写法

gt包的fmt_number()的rows参数遵循整洁评估规则,官方文档里的[colname]仅为列名占位标识,不是实际代码语法,直接写对应列名的过滤条件即可,无需额外包装:

library(gt)
library(tidyverse)

df <- starwars

gt_tb <- gt(df) %>%
  fmt_number(
    columns = mass,
    # 直接写过滤条件,方括号、expression、引用原数据框均不需要
    rows = birth_year > 20,
    pattern = "({x})"
  )

gt_tb

多条件写法示例

如果需要多条件过滤行,直接用逻辑运算符连接即可,完全符合文档说明的使用规则:

gt_tb <- gt(df) %>%
  fmt_number(
    columns = mass,
    rows = birth_year > 20 & mass < 100,
    pattern = "({x})"
  )

错误写法的问题说明

你之前尝试的写法报错都是因为误解了文档的占位标识,以及额外加了不需要的包装逻辑:

  • 文档里的[colname_1]只是用来指代「你要用到的列名」,不是实际要写进代码的语法
  • 不需要用expression()包装条件,也不需要引用原数据框df[birth_year]/df$birth_year,gt会自动在传入的表格数据环境里识别列名

内容的提问来源于stack exchange,提问作者vinceroni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:45:05