我使用R来构建一个简单的宏生成器,我想Map一个 Dataframe ,在字符串中进行替换,为 Dataframe 的每一行构建一个输出字符串
library(tidyverse)
df<-tribble(
~title, ~name,~age,
"Mr","Smith",46,
"Ms","Jones",26,
"Ms","Wiles",20
)
str<-"
This has parameters {{title}} {{name}}
and more {{age}}
"
字符串
我需要为每个行的子帧应用一个gsub函数,并为匹配列的参数名添加子值
fun<-function(name-of-column,value-of-column) {
gsub("\\{name-of-column\\}",value-in-column,str)
}
型
很容易对列数据进行置换
df %>% mutate(across(where(is.character),~ gsub("mit","yyy",.x)))
型
但是我想操作外部的东西,并将列的名称和值传递给操作。x在tibble中给出值,但是a如何引用名称?
df %>% mutate(across(where(is.character),~ fun(.x,.x)))
型
我希望这是有意义的!
1条答案
按热度按时间omvjsjqw1#
如果我理解正确的话,即基于
str
模式为每行数据创建一个字符串,你可以使用glue::glue
来实现你想要的结果,如下所示:字符串