使用 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 列。
我在将 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 列。