在装有Ubuntu和R 3.6.2的计算机上,我想打开CSV文件
[在LibreOffice中,我看到该文件带有一个“;”分隔符和ISO-8859-1编码
这是没有列名(标题)的文件,数据为巴西葡萄牙语。 DD / MM / YYYY HH:MM:SS格式的日期
有些列具有唯一的识别码,所以除日期外,我想将所有列都保留为字符串
这里以CSV第一行的内容为例:
345365; 99901000001201633 ;; BB –巴西巴西银行; Respondido; 01/01/2016 09:24:13; consultar meu cpf。 no spc e serasa; Consulta do cpf no serasa e spc; 25/01/2016 23:59:59;NÃO;NÃO; Pelo sistema(com avisos por email); Internet; 604629; Economia eFinanças; Economia; 1; 25 / 01/2016 11:30:39; Prezado(a)Sr(a)。 ,恩卡米纳莫斯(Encaminhamos),埃纳莫索(em anexo),信息通报。巴西巴西市政厅Atenciosamente –巴西SICBB Recurso遵从art527 Art的Lei 12527/11。 15日,没有因人而异的诉求,就因违反第10条因果关系而被判刑。 Parúgrafoúnico。 O recursoserádirigidoàautoridade hierarquicamente superioràex exarou adecisãoimpugnada,quedeveráse manifestar no prazo de 5(cinco)dias。; Acesso Concedido; Resposta solicitada inserida no e-SIC
所以我首先这样尝试:
library(readr)
asks_2016 <- read_delim("2016/20200201_Pedidos_csv_2016.csv",
";", escape_double = FALSE, col_names = FALSE,
locale = locale(encoding = "ISO-8859-1"))
但是返回的数据帧全为NA
我有这些警告消息:
Parsed with column specification:
cols(
.default = col_logical(),
X1 = col_double()
)
See spec(...) for full column specifications.
|==================================================================================| 100% 291 MB
Warning: 1923814 parsing failures.
row col expected actual file
1 X1 no trailing characters '2016/20200201_Pedidos_csv_2016.csv'
1 X2 1/0/T/F/TRUE/FALSE '2016/20200201_Pedidos_csv_2016.csv'
1 X3 1/0/T/F/TRUE/FALSE '2016/20200201_Pedidos_csv_2016.csv'
1 X4 1/0/T/F/TRUE/FALSE '2016/20200201_Pedidos_csv_2016.csv'
1 X5 1/0/T/F/TRUE/FALSE '2016/20200201_Pedidos_csv_2016.csv'
... ... ...................... ...... ....................................
See problems(...) for more details.
请,有人知道加载此CSV的正确方法吗?
您可以使用col_types
和cols()
指定默认的列格式。在下面,我们指定所有内容都应作为字符读取。
library(readr)
asks_2016 <- read_delim("2016/20200201_Pedidos_csv_2016.csv",
";", escape_double = FALSE, col_names = FALSE,
locale = locale(encoding = "ISO-8859-1"),
col_types = cols(.default = "c"))
然后将日期列转换为POSIXct。
asks_2016$datetime <- as.POSIXct(asks_2016$X18, format = "%d/%m/%Y %H:%M:%S")
head(asks_2016)
# A tibble: 1 x 22
X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 datetime
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <dttm>
1 345365 99901~ NA "BB â\u~ Respo~ 01/01/~ consult~ Consu~ 25/01~ "NÃ\~ "NÃ\~ Pelo s~ Inte~ 6046~ Econo~ Econ~ 1 25/01~ "Prezado(a) Sr(a~ Aces~ Respos~ 2016-01-25 11:30:39