Я пытаюсь преобразовать большой файл .CSV
в файл .Xdf
, используя функцию rxImport()
с приведенным ниже кодом:
rxImport(inData = "/poc/revor/data/ext_roll36_chrg_vol.csv",
outFile = "/poc/revor/data/ext_roll36_chrg_vol.xdf",
overwrite = TRUE, rowsPerRead = 100000,
colClasses = c(SE_NO = "character",
HIER_ROLLUP_CD = "character",
CUR_MO_CT ="numeric",
CUR_MO_AM = "numeric",
AD_LINE_1_TX = "character",
AD_LINE_2_TX = "character",
SUBMIT_DT = "character",
UPDT_TS = "character"),
transforms = list(SUBMIT_DT = as.Date(SUBMIT_DT, format="%d%b%Y")))
Но этот файл содержит много записей, таких как:
0200001097,SS,625,236899.000,"KRAV MAGA WORLDWIDE, INC.","KRAV MAGA WORLDWIDE, INC.",01MAY2014,07JUN2014:01:08:57.000000
Как видите, столбцы AD_LINE_1_TX
и AD_LINE_2_TX
содержат запятые внутри двойных кавычек.
Я пытался использовать аргумент type = "text"
, но затем он считывает первый столбец, т.е. SE_NO
, как numeric
, хотя его тип отображается как character
. Это проблема со всеми полями numeric
, которые я хочу читать как character
.
И если я преобразую столбец, используя аргумент transform
, в character
как:
transforms = list(SE_NO = as.character(as.numeric(SE_NO)))
Затем значение столбца SE_NO
изменяется с 0200001097
на 0200001000
при преобразовании символьного (экспоненциального представления) 2.000011e+08
в числовое.
Итак, есть ли другой способ подавить запятую внутри двойных кавычек, не затрагивая другие столбцы?
Пожалуйста, дайте мне знать, если потребуется какая-либо дополнительная информация о том же.
CSV
строка заголовка? - person Derek McCrae Norton   schedule 09.07.2015