用向量替换字符串的一部分
replace parts of a string with a vector
我在用一组矢量替换替换单个字符串的部分以生成矢量时遇到问题。
我有一个字符串 tex
旨在告诉图表将什么文本作为节点(和其他)标签。
所以如果 tex
是 "!label has frequency of !frequency"
T
的列 label
的值为 c("chickens","ducks",...)
和 frequency
的值为 c("chickens","ducks",...)
等,
函数 return 是一个类似于 c("Chickens has frequency of 35","Ducks has frequency of 12",...)
的向量
更正式地说,问题是:
给定一个小标题 T
和一个字符串 tex
,
return 一个长度为 nrow(T)
的向量,其中每个元素 = tex
,但模式 !pattern
的 tex
中的每个元素都被矢量化内容替换共 T$pattern
我看了
Replace string in R with patterns and replacements both vectors
和
String replacement with multiple string 但它们不适合我的用例。
stringr::str_replace() 也不做。
可能 baseR-solution 使用 sprintf()
animals = c("chickens","ducks")
frequency = c(35,12)
sprintf( "%s has frequency of %s", animals, frequency)
[1] "chickens has frequency of 35" "ducks has frequency of 12"
另外,
tex = "%s has frequency of %s"
sprintf( tex, animals, frequency )
会得到相同的结果。
我在用一组矢量替换替换单个字符串的部分以生成矢量时遇到问题。
我有一个字符串 tex
旨在告诉图表将什么文本作为节点(和其他)标签。
所以如果 tex
是 "!label has frequency of !frequency"
T
的列 label
的值为 c("chickens","ducks",...)
和 frequency
的值为 c("chickens","ducks",...)
等,
函数 return 是一个类似于 c("Chickens has frequency of 35","Ducks has frequency of 12",...)
更正式地说,问题是:
给定一个小标题 T
和一个字符串 tex
,
return 一个长度为 nrow(T)
的向量,其中每个元素 = tex
,但模式 !pattern
的 tex
中的每个元素都被矢量化内容替换共 T$pattern
我看了 Replace string in R with patterns and replacements both vectors 和 String replacement with multiple string 但它们不适合我的用例。 stringr::str_replace() 也不做。
可能 baseR-solution 使用 sprintf()
animals = c("chickens","ducks")
frequency = c(35,12)
sprintf( "%s has frequency of %s", animals, frequency)
[1] "chickens has frequency of 35" "ducks has frequency of 12"
另外,
tex = "%s has frequency of %s"
sprintf( tex, animals, frequency )
会得到相同的结果。