#r #csv #fwrite
#r #csv #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 он все равно оставался фактором.
Заранее большое спасибо!
Ответ №1:
CSV — это общий формат файла, который содержит только значения, разделенные запятыми. Он не содержит никакой информации о классах столбцов — это зависит от функции, которая считывает CSV, чтобы принять решение.
Чтобы сохранить информацию о классе при записи в файл, самый простой способ — использовать R-специфичный формат файла, например RDS (см. ?readRDS
И ?saveRDS
). Это отлично работает, если вам нужно только R для чтения файла.
Если вам нужно, чтобы другие программы также могли читать / записывать данные, вам нужно будет отслеживать информацию о классе и, например, использовать colClasses
аргумент of fread
для указания классов столбцов при чтении в CSV.