r - 解析格式化程序字符串
问题描述
假设我有以下内容:
format.string <- "@AB@-@BC@/@DF@" #wanted to use $ but it is problematic
value.list <- c(AB="a", BC="bcd", DF="def")
我想将 value.list 应用于 format.string 以便替换命名值。所以在这个例子中,我应该以一个字符串结束:a-bcd/def
我试图这样做:
resolved.string <- lapply(names(value.list),
function(x) {
sub(x = save.data.path.pattern,
pattern = paste0(c("@",x,"@"), collapse=""),
replacement = value.list[x]) })
但它似乎无法正常工作。我哪里错了?
解决方案
该glue
软件包就是为此而设计的。.open
您可以使用and更改开始和结束分隔符.close
,但它们必须不同。另请注意,value.list
它必须是列表或数据框:
library(glue)
format.string <- "{AB}-{BC}/{DF}"
value.list <- list(AB="a", BC="bcd", DF="def")
glue_data(value.list, format.string)
# a-bcd/def
推荐阅读
- r - dplyr:group_by & mutate 变量不能调用 mean/sd 函数
- swt - 在 smartgit 中支持 arm64 aarch64 arm armv7hl libswt-gtk-4763.so
- matplotlib - 带有图例的 t-sne 散点图
- go - Golang 中的工厂函数
- javascript - 访问组件方法内的存储:无法读取未定义的属性“$store”
- verilog - verilog 中的数组位参数范围 - 下溢或 -1
- python - TF 1.10 内部操作问题
- vba - 每个项目的过滤器计数(VBA/Excel)
- sql - 如何编写 SQL 函数以减少代码重复
- excel - Excel VBA根据工作表名称列表取消隐藏工作表,如果它符合某些条件