使用 fwrite 导出 csv 后,分类字段被转换为连续字段

Categorical fields being converted to continuous after exporting csv using fwrite

我在将 R 中的数据框导出到 csv 时遇到了一些麻烦,因为它似乎正在将我的因子转换为数字。在导出之前使用 summary(),我得到以下信息:

 JobLevel JobSatisfaction
 1:1880   1:1448         
 2:3134   2:1343         
 3:1307   3:1996         
 4: 545   4:2327         
          5: 248               

然后,我使用以下命令将文件导出为 CSV:

fwrite(HR, file = "Cleaned Data.csv")

但是,当我稍后导入 csv 时,分类列似乎已转换为连续列:

HR2 <- fread("Cleaned Data.csv", na.strings = "", stringsAsFactors = TRUE)
    JobLevel     JobSatisfaction
 Min.   :1.000   Min.   :1.000
 1st Qu.:1.000   1st Qu.:2.000
 Median :2.000   Median :3.000 
 Mean   :2.177   Mean   :2.731                  
 3rd Qu.:3.000   3rd Qu.:4.000                  
 Max.   :5.000   Max.   :4.000  

我认为性别很好,因为它是一个字符串,但有没有办法让我用数字级别导出我的因素,这样当稍后导入 csv 时,它仍然会作为一个因素。

非常感谢!

CSV 是一种通用文件格式,只是逗号分隔值。它不包含有关列的 classes 的任何信息 - 这取决于读取 CSV 的函数来决定。

要在写入文件时保留 class 信息,最简单的方法是使用 R-specific 文件格式,如 RDS(请参阅 ?readRDS?saveRDS)。如果您只需要 R 来读取文件,这非常有用。

如果您需要其他程序也能够 read/write 数据,那么您需要跟踪 class 信息,例如,使用 colClasses fread 的参数,用于在您读入 CSV 时指定 class 列。