首页 > 解决方案 > 解析格式化程序字符串

问题描述

假设我有以下内容:

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]) })

但它似乎无法正常工作。我哪里错了?

标签: rregex

解决方案


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

推荐阅读