R程序,用0填充字符,最大宽度=3
R program, pad characters with 0, max width=3
我试图用“0”填充向量的每个元素,这样最大宽度就是 3
示例:
- 0 变为 000
- 12 变成 012
- 100留100
这是代码
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
。
我试图用“0”填充向量的每个元素,这样最大宽度就是 3
示例:
- 0 变为 000
- 12 变成 012
- 100留100
这是代码
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
。