我正在下载一个包含具有以下结构的文本文件的zip文件:
ANO|MES|NUMERO_ORDEM|CODIGO_ORGAO|MATRICULA|NOME|CPF|VINCULO|CARGO|FUNCAO|REMUNERACAO_BASE|BENEFICIOS|EVENTUAIS|HORAS_EXTRAS|JUDICIAIS|COMISSAO|TETO_REDUTOR|IRRF|CONTRIBUICAO_PREVIDENCIARIA|FONTE|TOTAL|ANO_MES
2019|2|108010|12200218000179|17794|AILSON DE MELO SOUZA|###.539.0##-##|Estatutário|AGENTE ADMINISTRATIVO||2131.45|0.0|0.0|0.0|0.0|0.0|0.0|0.0|223.46|SEPLAG|1907.99|2019/02
2019|2|108011|12200218000179|17801|ANDREA ALVES COUTO VANDERLEI|###.837.7##-##|Estatutário|PROFESSOR||3661.66|0.0|0.0|0.0|0.0|0.0|0.0|105.59|402.78|SEPLAG|3153.29|2019/02
2019|2|108012|12200218000179|17805|RENATO VASCO DE ALMEIDA NETTO|###.244.8##-##|Estatutário|PROFESSOR||1830.83|0.0|0.0|0.0|0.0|0.0|0.0|0.0|201.39|SEPLAG|1629.44|2019/02
我正在使用R:
temp = tempfile()
download.file("http://transparencia.al.gov.br/media/arquivo/folha_ativo-2019.zip",temp)
arquivo = read.table(unz(temp, "folha_ativo-2019.txt"), sep = "|")
arquivo
unlink(temp)
但是我的read.table函数有一些问题,我认为这是因为字符“ |”和“#”。那么如何在R中读取具有这些字符类型的文件?
答案 0 :(得分:3)
几点:
通过将#
添加到comment.char=""
语句中,删除read.table
注释字符规范。
文件具有标题(使用header = TRUE
)
文件的最后一行也有标题,因此请读入并删除
如果要字符而不是要素列,请使用as.is=TRUE
|
应该没问题
不使用任何软件包。
L <- readLines(unz(temp, "folha_ativo-2019.txt"))
L <- head(L, -1) # remove header on the last line
arquivo <- read.table(textConnection(L), sep = "|",
header = TRUE, comment.char = "", as.is = TRUE)
给予:
> str(arquivo)
'data.frame': 509407 obs. of 22 variables:
$ ANO : int 2019 2019 2019 2019 2019 2019 2019 2019 2019 2019 ...
$ MES : int 2 2 2 2 2 2 2 2 2 2 ...
$ NUMERO_ORDEM : int 108010 108011 108012 108014 108016 108018 108019 108021 108022 108023 ...
$ CODIGO_ORGAO : num 1.22e+13 1.22e+13 1.22e+13 1.22e+13 1.22e+13 ...
$ MATRICULA : int 17794 17801 17805 17811 17816 17875 17878 17888 63964 17896 ...
$ NOME : chr "AILSON DE MELO SOUZA" "ANDREA ALVES COUTO VANDERLEI" "RENATO VASCO DE ALMEIDA NETTO" "ROGERIO RODRIGUES DOS SANTOS" ...
$ CPF : chr "###.539.0##-##" "###.837.7##-##" "###.244.8##-##" "###.002.5##-##" ...
$ VINCULO : chr "Estatut<e1>rio" "Estatut<e1>rio" "Estatut<e1>rio" "Estatut<e1>rio" ...
$ CARGO : chr "AGENTE ADMINISTRATIVO" "PROFESSOR" "PROFESSOR" "PROFESSOR" ...
$ FUNCAO : chr "" "" "" "" ...
$ REMUNERACAO_BASE : num 2131 3662 1831 1831 1831 ...
$ BENEFICIOS : num 0 0 0 0 0 0 0 0 0 0 ...
$ EVENTUAIS : num 0 0 0 0 0 0 0 0 0 0 ...
$ HORAS_EXTRAS : num 0 0 0 0 0 0 0 0 0 0 ...
$ JUDICIAIS : num 0 0 0 0 0 0 0 0 0 0 ...
$ COMISSAO : num 0 0 0 0 0 0 0 0 0 0 ...
$ TETO_REDUTOR : num 0 0 0 0 0 0 0 0 0 0 ...
$ IRRF : num 0 106 0 0 0 ...
$ CONTRIBUICAO_PREVIDENCIARIA: num 223 403 201 201 201 ...
$ FONTE : chr "SEPLAG" "SEPLAG" "SEPLAG" "SEPLAG" ...
$ TOTAL : num 1908 3153 1629 1629 1629 ...
$ ANO_MES : chr "2019/02" "2019/02" "2019/02" "2019/02" ...