如何在R列中保持双重类型的前导零

时间:2017-12-01 11:37:48

标签: r

我需要将一堆邮政编码读入R中,但它们必须是双重类型。我还需要保持从零开始的前导零。我试过了

import '../../assets/css/styles.css';
import '../../assets/css/ngMaterialTheme.scss';

这会转换我想要的方式,但它会将它们全部更改为字符类型,我无法将区域列读入另一个需要数字或双精度的函数。如果我转换为数字或双倍它再次摆脱前导零。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

为什么不将它们存储为数字,只需在需要时通过formatC添加零?例如,

tst <- 345
class(tst)
formatC(tst, width = 5, format = "d", flag = "0")

给出,

#[1] "numeric"
#[1] "00345"

为简洁起见,你甚至可以写一个包装器:

zip <- function(z)formatC(z, width = 5, format = "d", flag = "0")
zip(tst)
#[1] "00345"

这只会在需要时添加前导零。

zip(12345)
#[1] "12345"

答案 1 :(得分:1)

我建议保留两列,其中一列邮政编码显示为文本,另一列显示为双列。您必须首先读取邮政编码中的字符数据,然后从中创建双列,例如

# given df$zip_code
df$zip_as_double <- as.double(df$zip_code)

双变量通常不会保持前导零的数量,因为这些数字无论如何都不重要。所以我认为将邮政编码存储为字符数据是唯一的选择。