gpt4 book ai didi

r - 在 R 中跳过 sprintf 格式字符串中的参数

转载 作者:行者123 更新时间:2023-12-01 16:05:49 25 4
gpt4 key购买 nike

我有一个函数,它返回给定两个日期的时间段的字符串表示形式,但我希望用户能够控制格式。为此,我使用 sprintf ,调用者传入格式字符串,使调用者可以灵活地使用以下内容:

> sprintf("from %s - %s","Mon 21","Sun 27")
[1] "from Mon 21 - Sun 27"

> sprintf("%s - %s inclusive","Mon 21","Sun 27")
[1] "Mon 21 - Sun 27 inclusive"

我发现如果格式字符串中没有足够的%标记也没关系,所以你可以这样做:

> sprintf("week begin %s","Mon 21","Sun 27")
[1] "week begin Mon 21"

但我找不到构建格式字符串的方法,该格式字符串会删除第一个参数并返回“以周日 27 日结束的一周”。注意我真的想要一个仅更改格式字符串的解决方案,或者知道这是否不可能......

我尝试过一些技巧,例如使用 %0s 将第一个格式设置为 0 宽度,但没有什么乐趣:

> sprintf("%0s week ending %s","Mon 21","Sun 27")
[1] "Mon 21 week ending Sun 27"

显然,我可以通过让调用者说出该格式是否使用开始和/或结束日期来完成这项工作,但如果有一种方法可以使用 sprintf 格式字符串来完成此操作,那就太好了.

最佳答案

喜欢这个吗?

> sprintf("week ending %2$s","Mon 21","Sun 27")
[1] "week ending Sun 27"

另一个例子(扩展主题),

> sprintf("week ending either %2$s or %4$s", "Mon 21","Sun 27","Mon 28","Sun 2")
[1] "week ending either Sun 27 or Sun 2"

关于r - 在 R 中跳过 sprintf 格式字符串中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50684286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com