過去幾個小時我一直在研究這個。我曾嘗試使用sprintf
,但它將列更改爲字符。我想要做的就是有一個固定寬度的數字列,用零填充。前導零填充數字列
Q
前導零填充數字列
0
A
回答
3
如果你願意使用自定義類,你可以寫,做這種打印方法。做一個數據幀,並給它一個自定義類:
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
+0
這是行之有效的。謝謝布羅迪 – maryam
3
如果您提供更多的上下文,我們可能會幫助您解決最終(而非近端)問題,例如,如果你需要輸出在這種格式,但不包括引號:
> cat(sprintf("%04d",5),"\n")
0005
## or
> print(sprintf("%04d",5),quote=FALSE)
[1] 0005
write.csv(...,quote=FALSE)
可能也有幫助
相關問題
- 1. JSTL填充int前導零
- 2. 如何用前導零填充整數?
- 3. 如何將前導零的數字填充到固定長度?
- 4. 訪問查詢中帶前導零的填充數字
- 5. 用零填充數字
- 6. PHP:如何添加前導零/零填充通過sprintf()浮動?
- 7. 使用零填充(前導零)將int轉換爲QString
- 8. 前導零/零填充不能正常工作
- 9. 在Julialang中帶有前導(左填充)零的字符串的數字
- 10. 填充計數器,前導0直到9,然後用php刪除前導零。
- 11. 如何動態填充前導零(在函數中)?
- 12. 如何在Netezza SQL中使用前導零填充整數
- 13. XSLT 1.0中帶有前導零的填充數
- 14. 如何填充數字字段的零?
- 15. Perl前導零的數字序列
- 16. 倒數時填充零數字
- 17. 用零填充陣列openCV
- 18. INT填充零字符串
- 19. 截斷前導零和填充等於UNIX中特定字段的空格數
- 20. 通過文本框填充帶前導零的數字TextChanged事件
- 21. 使用以前的數字列值填充的空數字列
- 22. 用數字fmt.Printf添加零填充
- 23. 如何用零填充數字?
- 24. 批次:通過數字填充用零
- 25. 零鍵盤的數字未填充
- 26. 填充零
- 27. 零填充fft
- 28. 填充帶前導零的共同寬度
- 29. 使用db:填充導致零例外
- 30. glBufferSubData導致緩衝區填充零
如果不轉換爲字符類,則無法填充前導零。 – akrun
數字沒有前導零。如果你想讓它們以特定的方式格式化,那麼你必須轉換成字符格式。 – MrFlick
呃哦:(OK然後感謝yall – maryam