R程序,用0填充字符,最大宽度=3

R program, pad characters with 0, max width=3

我试图用“0”填充向量的每个元素,这样最大宽度就是 3

示例:

这是代码

myvector <- c("2", "3", "33", "90", "120")
newvector <- lapply(myvector,formatC(width=3, format="s", flag="0"))

当我使用 lapply 时,出现错误

Error in formatC(width = 3, format = "s", flag = "0") : 
  argument "x" is missing, with no default

这没有意义,因为我在 lapply 中使用它,而 lapply 的第一个参数是 myvector.

您需要将向量的每个元素传递给 formatC(并且您还希望将它们作为数字传递以获得 0 填充):

myvector <- c("2", "3", "33", "90", "120")
newvector <- lapply(myvector, function(x) formatC(as.numeric(x), width=3, flag="0"))
newvector
# [[1]]
# [1] "002"
# 
# [[2]]
# [1] "003"
# 
# [[3]]
# [1] "033"
# 
# [[4]]
# [1] "090"
# 
# [[5]]
# [1] "120"

如果你想要一个向量而不是列表,你可以使用 sapply 而不是 lapply