r - 导入 R 后添加前导零

标签 r dataframe zero read.csv leading-zero

我有一个包含 Reference 列的数据框。这是一个 10 位数字,可以从零开始。 导入 R 时,前导零消失,我想重新添加。

我尝试过使用 sprintfformatC,但我遇到的问题各不相同。

DF=data.frame(Reference=c(102030405,2567894562,235648759), Data=c(10,20,30))

我得到的输出如下:

> sprintf('%010d', DF$Reference)
[1] "0102030405" "        NA" "0235648759"
Warning message:
In sprintf("%010d", DF$Reference) : NAs introduced by coercion
> formatC(DF$Reference, width=10, flag="0")
[1] "001.02e+08" "02.568e+09" "02.356e+08"

当数字已经有 10 位时,第一个输出给出 NA,第二个输出以标准格式存储结果。

我需要的是:

[1]  0102030405 2567894562  0235648759

最佳答案

library(stringi)
DF = data.frame(Reference = c(102030405,2567894562,235648759), Data = c(10,20,30))
DF$Reference = stri_pad_left(DF$Reference, 10, "0")
DF
#    Reference Data
# 1 0102030405   10
# 2 2567894562   20
# 3 0235648759   30

替代解决方案:Adding leading zeros using R

When importing into R, the leading zeros disappear, which I would like to add back in.

以字符形式读取列可以完全避免这个问题。您可以将 readr::read_csv()col_types 参数一起使用。

关于r - 导入 R 后添加前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35844105/

相关文章:

java - 将字符串解析为带前导零的长

c - 在 C 中初始化地址为零的变量

r - 如何获得R的两个矩阵中每个元素的总和

r - R中的语义错误,递归的使用

r - 如何使用 R 允许来自用户的多个输入?

javascript - javascript有负零的概念吗

r - 在 R 中创建一个新列

python - 减去 pandas 数据框中的两列

python - Groupby nunique 与 unique 与分类数据

r - 第 1 组的唯一值,然后是第 1 组和第 2 组,依此类推