我在用一组向量替换来替换单个字符串的部分以生成向量时遇到问题。
我有一个字符串tex
,用于告诉图将什么文本作为节点(和其他)标签。
因此,如果tex
是"!label has frequency of !frequency"
T
的列label
的值为c("chickens","ducks",...)
,列frequency
的值为c("chickens","ducks",...)
,除其他外,
该函数返回像c("Chickens has frequency of 35","Ducks has frequency of 12",...)
更正式地说,问题是:
给出一个小标题T
和一个字符串tex
,
返回一个长度为nrow(T)
的向量,其中每个元素= tex
,但其中模式tex
在!pattern
的{{1}}中的每个出现都由{{1 }}
我看着 Replace string in R with patterns and replacements both vectors 和 String replacement with multiple string,但它们不适合我的用例。 stringr :: str_replace()也不做。
答案 0 :(得分:1)
使用sprintf()
animals = c("chickens","ducks")
frequency = c(35,12)
sprintf( "%s has frequency of %s", animals, frequency)
[1]“鸡的频率为35”“鸭子的频率为12”
也是
tex = "%s has frequency of %s"
sprintf( tex, animals, frequency )
将给出相同的结果。