gpt4 book ai didi

r - 用前导零填充数字列

转载 作者:行者123 更新时间:2023-12-04 11:15:44 24 4
gpt4 key购买 nike

过去几个小时我一直在研究这个问题。我曾尝试使用 sprintf 但它将列更改为字符。我想做的就是有一个固定宽度的数字列,用零填充。

最佳答案

如果您愿意使用自定义类,您可以编写一个打印方法来执行此操作。制作一个数据框,并给它一个自定义类:

DF <- data.frame(a=letters[1:10], b=sample(c(1, 10, 100), 10, rep=T), c=sample(c(1, 10, 100), 10, rep=T))
class(DF) <- c("my_df", class(DF))

编写一个使用@BenBolker 格式的打印方法:

print.my_df <- function(x, ...) {
num.cols <- sapply(x, is.numeric)
x[num.cols] <- lapply(x[num.cols], sprintf, fmt="%04d")
NextMethod()
}

然后:

DF

生产:

   a    b    c
1 a 0100 0100
2 b 0010 0001
3 c 0001 0010
4 d 0001 0100
5 e 0001 0001
6 f 0001 0001
7 g 0001 0001
8 h 0001 0100
9 i 0001 0100
10 j 0001 0001

您仍然可以以相同的方式使用数据框,因为数字仅在打印时才会转换。

> sum(DF$b)
[1] 118

关于r - 用前导零填充数字列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29635379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com