如何让gt表格的交互式搜索框对重音不敏感?
解决gt包交互式搜索的重音敏感问题
要消除gt交互式搜索的重音敏感性,最直接的方法是为带重音的文本生成无重音的辅助列,让搜索功能同时匹配原始文本和无重音文本,具体步骤如下:
- 用
stringi包的stri_trans_general()函数去除文本中的重音符号,生成辅助列 - 在gt表格中隐藏辅助列(避免影响表格展示),但保留其参与搜索的能力
修改后的完整代码
library(tidyverse) library(gt) library(stringi) days_of_week <- tribble( ~english, ~spanish, "Monday", "Lunes", "Tuesday", "Martes", "Wednesday", "Miércoles", "Thursday", "Jueves", "Friday", "Viernes", "Saturday", "Sábado", "Sunday", "Domingo" ) %>% # 为西班牙语列生成无重音版本的辅助列 mutate(spanish_no_accents = stri_trans_general(spanish, "Latin-ASCII")) days_of_week %>% gt() %>% # 隐藏辅助列,不在表格中显示 cols_hide(columns = spanish_no_accents) %>% opt_interactive(use_search = TRUE)
效果说明
现在搜索Sabado(无重音)或Sábado(带重音)都能匹配到对应的行,因为gt的交互式搜索会同时检索原始的spanish列和隐藏的spanish_no_accents列。如果你的表格中有多列带重音,只需为每一列生成对应的无重音辅助列并隐藏即可。
内容的提问来源于stack exchange,提问作者dzegpi
相关产品推荐
相关产品推荐

