我意识到读取 .csv 文件会删除前导零,但对于我的某些文件,它会保留前导零,而我不必在 read.csv 中明确设置 colClasses。另一方面,让我感到困惑的是在其他情况下,它确实删除了前导零。所以我的问题是:在哪些情况下 read.csv 会删除前导零?
最佳答案
read.csv
, read.table
, 和相关函数将所有内容作为字符串读取,然后根据函数的参数(特别是 colClasses
,还有其他)和选项,函数将尝试“简化”列。如果有足够多的列看起来是数字,而您没有告诉函数其他情况,那么它会将其转换为数字列,这将删除任何前导 0(以及小数点后的尾随 0)。如果列中的某些内容看起来不像数字,则它不会转换为数字,而是将其保留为字符或转换为因子,这将保留前导 0。该函数并不总是查看整个列来做出决定,因此对您来说显而易见的不是数字的内容可能仍会被转换。
最安全(也是最快)的方法是指定 colClasses
这样 R 就不需要猜测(你也不需要猜测 R 会猜到什么)。
关于R:读取 .csv 文件会删除前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31411119/