【发布时间】:2017-06-23 21:40:16
【问题描述】:
我有一个名字向量,像这样:
x <- c("Marco", "John", "Jonathan")
我需要通过添加前导和尾随空格来格式化它,以便名称在 10 个字符的字符串中居中:
> output
# [1] " Marco " " John " " Jonathan "
我希望有一个比使用paste、rep 和计数nchar 更简单的解决方案? (也许是sprintf,但我不知道怎么做)。
【问题讨论】:
-
这是一个复杂的:
paste(sapply(nchar(x), function(n) paste(rep(" ", floor((10 - n)/2)), collapse = "")), x, sapply(nchar(x), function(n) paste(rep(" ", 10 - n - floor((10 - n)/2)), collapse = "")), sep = "") -
@d.b 谢谢,您的解决方案确实有效(除非初始名称超过 10 个字符,否则会引发错误)。
标签: r string formatting printf string-formatting