我有一个名称向量,如下所示:
x <- c("Marco", "John", "Jonathan")
我需要通过添加前导空格和尾随空格对其进行格式化,以便名称以 10 个字符的字符串居中:
> output
# [1] " Marco " " John " " Jonathan "
我希望有一个比使用更简单的解决方案paste
, rep
,并计数nchar
? (也许与sprintf
但我不知道怎么做)。
这是一个sprintf()
使用简单辅助向量的解决方案f
以确定低边宽度。然后我们可以使用以下命令将宽度插入到我们的格式中*
字符,取ceiling()
位于右侧,以占名称中的奇数个字符。由于我们的最大字符宽度为 10,因此每个超过 10 个字符的名称将保持不变,因为我们使用以下命令调整这些宽度pmax()
.
f <- pmax((10 - nchar(x)) / 2, 0)
sprintf("%-*s%s%*s", f, "", x, ceiling(f), "")
# [1] " Marco " " John " " Jonathan " "Christopher"
Data:
x <- c("Marco", "John", "Jonathan", "Christopher")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)