使用 read.csv() 时保持前导 0

Adr*_*Mnc 2 csv format r xlsx

我正在尝试创建一个从文件夹读取多个 CSV 并将其转换为 xlsx 的工具。我的问题是,在某些变量中,我想保留前导零。但变量名称因文件而异,而且每次我需要这个工具时也是如此。

那么,有没有一种方法可以在使用 读取文件时自动检测任何变量中的前导 0 read.csv()

阅读后我无法应用格式,因为我不完全知道需要应用它的变量名称。我不能强制每一列都变成文本,因为我还有其他变量需要是数字。

G. *_*eck 5

定义一个特殊的类 num2,然后用它运行 read.csv。

setClass("num2")

setAs("character", "num2",
  function(from) {
    from2 <- type.convert(from, as.is = TRUE)
    if (is.numeric(from2) && any(grepl("^0", from))) from else from2
  })

DF <- read.csv(text = Lines, colClasses = "num2")
str(DF)
## 'data.frame':   2 obs. of  4 variables:
##  $ a: int  1 2
##  $ b: int  2 4
##  $ c: chr  "03" "05"
##  $ d: chr  "ab" "cd"
Run Code Online (Sandbox Code Playgroud)

笔记

样本数据

Lines <- "a,b,c,d
1,2,03,ab
2,4,05,cd"
Run Code Online (Sandbox Code Playgroud)