我有一个函数,它返回给定两个日期的句点的字符串表示形式,但我希望用户能够控制格式。为了这个我在用
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"
但我找不到方法来构造一个格式字符串,该字符串删除第一个参数并返回“Week Ending Sun 27”。注意我真的想要一个解决方案,只改变格式字符串,或者知道这是不可能的…
我试过一些技巧,比如用
%0s
但没有欢乐:
> sprintf("%0s week ending %s","Mon 21","Sun 27")
[1] "Mon 21 week ending Sun 27"
显然,我可以让调用者说出格式是否使用开始日期和/或结束日期,但如果有方法使用
把格式数据写成串
格式化字符串会很整洁。