首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用r中的序列替换来替换可变数量的占位符?

如何用r中的序列替换来替换可变数量的占位符?
EN

Stack Overflow用户
提问于 2019-02-19 01:21:14
回答 1查看 434关注 0票数 2

我想要的是用序列的向量替换占位符%f。我目前使用的是stringr函数,但是对于每个占位符,我必须添加额外的替换向量。问题是,测试字符串中占位符的数量是可变的。我下面的代码并不是很优雅,它固定为8个占位符。有没有什么方法可以让它变得更动态,使用stringr或任何其他库?

代码语言:javascript
复制
sequence = seq(-10, 10, by = 0.001)

if (str_count(equation, "%f") == 1) {
input_equations <-sprintf(equation, sequence )
}
else if (str_count(equation, "%f") == 2) {
input_equations <-sprintf(equation, sequence, sequence )
}
else if (str_count(equation, "%f") == 3) {
input_equations <-sprintf(equation, sequence, sequence, sequence )
}
else if (str_count(equation, "%f") == 4) {
input_equations <-sprintf(equation, sequence, sequence, sequence, sequence )
}
else if (str_count(equation, "%f") == 5) {
input_equations <-sprintf(equation, sequence, sequence, sequence, sequence, sequence )
}
else if (str_count(equation, "%f") == 6) {
input_equations <-sprintf(equation, sequence, sequence, sequence, sequence, sequence, sequence )
}
else if (str_count(equation, "%f") == 7) {
input_equations <-sprintf(equation, sequence, sequence, sequence, sequence, sequence, sequence, sequence )
}
else if (str_count(equation, "%f") == 8) {
input_equations <-sprintf(equation, sequence, sequence, sequence, sequence, sequence, sequence, sequence, sequence )
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-19 01:54:21

您可以使用do.call函数来完成此操作。您将需要一个参数列表。所以代码是:

代码语言:javascript
复制
# Example equation and sequence
equation <- "a + %f - %f"
sequence <- c(1:3)

# Get number of placeholders
str_n <- str_count(equation, "%f")
# Construct arguments list
arg_list <- lapply(c(1:str_n), function(x) sequence)
arg_list$fmt <- equation # Named argument

# Call sprintf with constructed arguments
input_equations <- do.call("sprintf", arg_list)

这里是一个结果:

代码语言:javascript
复制
[1] "a + 1.000000 - 1.000000" "a + 2.000000 - 2.000000"
[3] "a + 3.000000 - 3.000000"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54752384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档