Tenía la versión data.table 1.9.6.- Actualicé a la data.table 1.10.0 y
funcionó tal cual lo indicás. Muchas gracias.
?Para eliminar las " adicionales estoy usando:
library(stringr)
library(plyr)
datos$d_nomenclador <- str_replace(datos$d_nomenclador,
pattern='\\","',
replacement="")
datos$nomenclador_descripcion<- str_replace(datos$nomenclador_descripcion,
pattern='\\","', replacement="")
Pero elimina las del principio y sigo con problemas con las del final, como
si no las reconociera (debería: en el Excel cuando corro el reemplazar "
por [nada] elimina todas.
Las dos variables son chr.
head(datos)
d_nomenclador baja_nomenclador nomenclador_descripcion
nomenclador_asociado
1: 67" NA NOMENCLADOR GCBA Res. 1893 Vig.
09-2016"
"20"
2: 67" NA NOMENCLADOR GCBA Res. 1893 Vig.
09-2016"
"20"
3: 67" NA NOMENCLADOR GCBA Res. 1893 Vig.
09-2016"
"20"
4: 67" NA NOMENCLADOR GCBA Res. 1893 Vig.
09-2016"
"20"
5: 67" NA NOMENCLADOR GCBA Res. 1893 Vig.
09-2016"
"20"
6: 67" NA NOMENCLADOR GCBA Res. 1893 Vig.
09-2016"
"20"
El 19 de enero de 2017, 4:25, Carlos Ortega <cof en qualityexcellence.es>
escribió:
> ¿Qué versión usas de data.table?.
> Yo tengo la 1.10.0... creo que es la última...
>
> Saludos,
> Carlos Otega
> www.qualityexcellence.es
>
> El 19 de enero de 2017, 1:30, Mauricio Monsalvo <m.monsalvo en
gmail.com>
> escribió:
>
>> No le gustó:
>> Error in fread("datos.csv", sep = "|", header =
TRUE, quote = "") :
>> unused argument (quote = "")
>>
>>
>> El 18 de enero de 2017, 20:35, Carlos Ortega <cof en
qualityexcellence.es>
>> escribió:
>>
>>> Hola,
>>>
>>> Prueba con esto:
>>>
>>> fread("datos.csv", sep = "|", header = TRUE,
quote="")
>>>
>>> Con el parámetro quote, ignora las comillas del principio.
>>> No elimina todas, pero te permite cargar el conjunto sin problemas.
>>> Una vez cargado, ya puedes limpiar las columnas, quitando las
comillas
>>> adicionales, etc...
>>>
>>> Saludos,
>>> Carlos Ortega
>>> www.qualityexcellence.es
>>>
>>> El 19 de enero de 2017, 0:22, Mauricio Monsalvo <m.monsalvo en
gmail.com>
>>> escribió:
>>>
>>>> Hola.
>>>> Tengo un archivo que viene separado por "|" y a su
vez con (casi) todos
>>>> los campos entre comillas ("..."), incluso los
valores numéricos. Adjunto
>>>> algunos datos de prueba. El error que da es que no encuentra 14
elementos
>>>> en las filas (son 15 variables).
>>>> Probé algunas variantes y traté de orientarme por la ayuda y
Stack (
>>>> http://stackoverflow.com/search?q=read.table+sep%3D%22%7C%22),
pero no
>>>> encontré mejor solución que:
>>>> 1) Abrir el archivo con Excel.
>>>> 2) Reemplazar | por ;
>>>> 3) Reemplazar " por [nada];
>>>> 4) Abrirlo con:
>>>> datos <- read.table("datos.csv" , header=T,
sep=";", dec=".", quote >>>> "",
encoding = "UTF-8")
>>>> y digamos que funciona, salvo que la primera variable contiene
un " al
>>>> inicio ("67, "67, "etc) y la última siempre
termina con un " (ACCIDENTADO
>>>> CRITICO", NIÑO NEONATO", "etc).-
>>>> ¿Podrían ayudarme a levantarlo de una (separado por | y con los
datos
>>>> entre "") o bien a levantarlo luego del replace sin
esas incómodas " al
>>>> inicio de la primera variable y al final de la última?
>>>> Muchas gracias.
>>>> Saludos!
>>>>
>>>> --
>>>> Mauricio
>>>>
>>>> _______________________________________________
>>>> R-help-es mailing list
>>>> R-help-es en r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>>
>>>
>>>
>>>
>>> --
>>> Saludos,
>>> Carlos Ortega
>>> www.qualityexcellence.es
>>>
>>
>>
>>
>> --
>> Mauricio
>>
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
--
Mauricio
[[alternative HTML version deleted]]
Marcelino de la Cruz Rot
2017-Jan-19 11:25 UTC
[R-es] read.table con .csv separado por "|"
Hola,
de todas formas, si quieres una aproximación sólo con R puedes
conseguirlo en estos cómodos pasos:
nombres<-read.table("datos.csv",nrows=1, sep="|")
datos <-read.table("datos.csv", sep="|",skip=1,
encoding="UTF-8")
datos<-apply(datos, 1, function(x) strsplit(as.character(x),"[|]"))
datos<- sapply(datos, function(x) unlist(lapply(x, function(y)
chartr('"', ' ',y))))
datos<- as.data.frame(t(as.data.frame(datos)))
names(datos)<-as.character(unlist(nombres))
datos
Probablemente luego necesitarás reconvertir las variables numéricas (las
lee como factores) con algo como:
datos$d_nomenclador<- as.numeric(as.character(datos$d_nomenclador))
Pero lo haces todo en R, que es de lo que se trata.
¿O no? ;-)
Saludos,
Marcelino
El 19/01/2017 a las 11:31, Mauricio Monsalvo escribió:> Tenía la versión data.table 1.9.6.- Actualicé a la data.table 1.10.0 y
> funcionó tal cual lo indicás. Muchas gracias.
> ?Para eliminar las " adicionales estoy usando:
> library(stringr)
> library(plyr)
> datos$d_nomenclador <- str_replace(datos$d_nomenclador,
pattern='\\","',
> replacement="")
> datos$nomenclador_descripcion<-
str_replace(datos$nomenclador_descripcion,
> pattern='\\","', replacement="")
> Pero elimina las del principio y sigo con problemas con las del final, como
> si no las reconociera (debería: en el Excel cuando corro el reemplazar
"
> por [nada] elimina todas.
> Las dos variables son chr.
> head(datos)
> d_nomenclador baja_nomenclador nomenclador_descripcion
> nomenclador_asociado
> 1: 67" NA NOMENCLADOR GCBA Res. 1893 Vig.
09-2016"
> "20"
> 2: 67" NA NOMENCLADOR GCBA Res. 1893 Vig.
09-2016"
> "20"
> 3: 67" NA NOMENCLADOR GCBA Res. 1893 Vig.
09-2016"
> "20"
> 4: 67" NA NOMENCLADOR GCBA Res. 1893 Vig.
09-2016"
> "20"
> 5: 67" NA NOMENCLADOR GCBA Res. 1893 Vig.
09-2016"
> "20"
> 6: 67" NA NOMENCLADOR GCBA Res. 1893 Vig.
09-2016"
> "20"
>
>
> El 19 de enero de 2017, 4:25, Carlos Ortega <cof en
qualityexcellence.es>
> escribió:
>
>> ¿Qué versión usas de data.table?.
>> Yo tengo la 1.10.0... creo que es la última...
>>
>> Saludos,
>> Carlos Otega
>> www.qualityexcellence.es
>>
>> El 19 de enero de 2017, 1:30, Mauricio Monsalvo <m.monsalvo en
gmail.com>
>> escribió:
>>
>>> No le gustó:
>>> Error in fread("datos.csv", sep = "|", header =
TRUE, quote = "") :
>>> unused argument (quote = "")
>>>
>>>
>>> El 18 de enero de 2017, 20:35, Carlos Ortega <cof en
qualityexcellence.es>
>>> escribió:
>>>
>>>> Hola,
>>>>
>>>> Prueba con esto:
>>>>
>>>> fread("datos.csv", sep = "|", header =
TRUE, quote="")
>>>>
>>>> Con el parámetro quote, ignora las comillas del principio.
>>>> No elimina todas, pero te permite cargar el conjunto sin
problemas.
>>>> Una vez cargado, ya puedes limpiar las columnas, quitando las
comillas
>>>> adicionales, etc...
>>>>
>>>> Saludos,
>>>> Carlos Ortega
>>>> www.qualityexcellence.es
>>>>
>>>> El 19 de enero de 2017, 0:22, Mauricio Monsalvo <m.monsalvo
en gmail.com>
>>>> escribió:
>>>>
>>>>> Hola.
>>>>> Tengo un archivo que viene separado por "|" y a
su vez con (casi) todos
>>>>> los campos entre comillas ("..."), incluso los
valores numéricos. Adjunto
>>>>> algunos datos de prueba. El error que da es que no
encuentra 14 elementos
>>>>> en las filas (son 15 variables).
>>>>> Probé algunas variantes y traté de orientarme por la ayuda
y Stack (
>>>>>
http://stackoverflow.com/search?q=read.table+sep%3D%22%7C%22), pero no
>>>>> encontré mejor solución que:
>>>>> 1) Abrir el archivo con Excel.
>>>>> 2) Reemplazar | por ;
>>>>> 3) Reemplazar " por [nada];
>>>>> 4) Abrirlo con:
>>>>> datos <- read.table("datos.csv" , header=T,
sep=";", dec=".", quote >>>>> "",
encoding = "UTF-8")
>>>>> y digamos que funciona, salvo que la primera variable
contiene un " al
>>>>> inicio ("67, "67, "etc) y la última siempre
termina con un " (ACCIDENTADO
>>>>> CRITICO", NIÑO NEONATO", "etc).-
>>>>> ¿Podrían ayudarme a levantarlo de una (separado por | y con
los datos
>>>>> entre "") o bien a levantarlo luego del replace
sin esas incómodas " al
>>>>> inicio de la primera variable y al final de la última?
>>>>> Muchas gracias.
>>>>> Saludos!
>>>>>
>>>>> --
>>>>> Mauricio
>>>>>
>>>>> _______________________________________________
>>>>> R-help-es mailing list
>>>>> R-help-es en r-project.org
>>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>>>
>>>>
>>>>
>>>> --
>>>> Saludos,
>>>> Carlos Ortega
>>>> www.qualityexcellence.es
>>>>
>>>
>>>
>>> --
>>> Mauricio
>>>
>>
>>
>> --
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>
>
--
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España
[[alternative HTML version deleted]]
Sensacional! Muchas gracias, Marcelino. Funcionó muy bien. Opté por el Gedit como editor de texto decente. Así que sumé por ese lado también. Gracias a la lista. Saludos. El 19 de enero de 2017, 8:25, Marcelino de la Cruz Rot < marcelino.delacruz en urjc.es> escribió:> Hola, > de todas formas, si quieres una aproximación sólo con R puedes conseguirlo > en estos cómodos pasos: > > > nombres<-read.table("datos.csv",nrows=1, sep="|") > datos <-read.table("datos.csv", sep="|",skip=1, encoding="UTF-8") > datos<-apply(datos, 1, function(x) strsplit(as.character(x),"[|]")) > datos<- sapply(datos, function(x) unlist(lapply(x, function(y) chartr('"', > ' ',y)))) > datos<- as.data.frame(t(as.data.frame(datos))) > names(datos)<-as.character(unlist(nombres)) > datos > > Probablemente luego necesitarás reconvertir las variables numéricas (las > lee como factores) con algo como: > datos$d_nomenclador<- as.numeric(as.character(datos$d_nomenclador)) > > Pero lo haces todo en R, que es de lo que se trata. > ¿O no? ;-) > > Saludos, > > Marcelino > > > > > El 19/01/2017 a las 11:31, Mauricio Monsalvo escribió: > > Tenía la versión data.table 1.9.6.- Actualicé a la data.table 1.10.0 y > funcionó tal cual lo indicás. Muchas gracias. > ?Para eliminar las " adicionales estoy usando: > library(stringr) > library(plyr) > datos$d_nomenclador <- str_replace(datos$d_nomenclador, pattern='\\","', > replacement="") > datos$nomenclador_descripcion<- str_replace(datos$nomenclador_descripcion, > pattern='\\","', replacement="") > Pero elimina las del principio y sigo con problemas con las del final, como > si no las reconociera (debería: en el Excel cuando corro el reemplazar " > por [nada] elimina todas. > Las dos variables son chr. > head(datos) > d_nomenclador baja_nomenclador nomenclador_descripcion > nomenclador_asociado > 1: 67" NA NOMENCLADOR GCBA Res. 1893 Vig. 09-2016" > "20" > 2: 67" NA NOMENCLADOR GCBA Res. 1893 Vig. 09-2016" > "20" > 3: 67" NA NOMENCLADOR GCBA Res. 1893 Vig. 09-2016" > "20" > 4: 67" NA NOMENCLADOR GCBA Res. 1893 Vig. 09-2016" > "20" > 5: 67" NA NOMENCLADOR GCBA Res. 1893 Vig. 09-2016" > "20" > 6: 67" NA NOMENCLADOR GCBA Res. 1893 Vig. 09-2016" > "20" > > > El 19 de enero de 2017, 4:25, Carlos Ortega <cof en qualityexcellence.es> <cof en qualityexcellence.es> > escribió: > > > ¿Qué versión usas de data.table?. > Yo tengo la 1.10.0... creo que es la última... > > Saludos, > Carlos Otegawww.qualityexcellence.es > > El 19 de enero de 2017, 1:30, Mauricio Monsalvo <m.monsalvo en gmail.com> <m.monsalvo en gmail.com> > escribió: > > > No le gustó: > Error in fread("datos.csv", sep = "|", header = TRUE, quote = "") : > unused argument (quote = "") > > > El 18 de enero de 2017, 20:35, Carlos Ortega <cof en qualityexcellence.es> <cof en qualityexcellence.es> > escribió: > > > Hola, > > Prueba con esto: > > fread("datos.csv", sep = "|", header = TRUE, quote="") > > Con el parámetro quote, ignora las comillas del principio. > No elimina todas, pero te permite cargar el conjunto sin problemas. > Una vez cargado, ya puedes limpiar las columnas, quitando las comillas > adicionales, etc... > > Saludos, > Carlos Ortegawww.qualityexcellence.es > > El 19 de enero de 2017, 0:22, Mauricio Monsalvo <m.monsalvo en gmail.com> <m.monsalvo en gmail.com> > escribió: > > > Hola. > Tengo un archivo que viene separado por "|" y a su vez con (casi) todos > los campos entre comillas ("..."), incluso los valores numéricos. Adjunto > algunos datos de prueba. El error que da es que no encuentra 14 elementos > en las filas (son 15 variables). > Probé algunas variantes y traté de orientarme por la ayuda y Stack (http://stackoverflow.com/search?q=read.table+sep%3D%22%7C%22), pero no > encontré mejor solución que: > 1) Abrir el archivo con Excel. > 2) Reemplazar | por ; > 3) Reemplazar " por [nada]; > 4) Abrirlo con: > datos <- read.table("datos.csv" , header=T, sep=";", dec=".", quote > "", encoding = "UTF-8") > y digamos que funciona, salvo que la primera variable contiene un " al > inicio ("67, "67, "etc) y la última siempre termina con un " (ACCIDENTADO > CRITICO", NIÑO NEONATO", "etc).- > ¿Podrían ayudarme a levantarlo de una (separado por | y con los datos > entre "") o bien a levantarlo luego del replace sin esas incómodas " al > inicio de la primera variable y al final de la última? > Muchas gracias. > Saludos! > > -- > Mauricio > > _______________________________________________ > R-help-es mailing listR-help-es en r-project.orghttps://stat.ethz.ch/mailman/listinfo/r-help-es > > > > -- > Saludos, > Carlos Ortegawww.qualityexcellence.es > > > > -- > Mauricio > > > > > -- > Saludos, > Carlos Ortegawww.qualityexcellence.es > > > > > -- > Marcelino de la Cruz Rot > Depto. de Biología y Geología > Física y Química Inorgánica > Universidad Rey Juan Carlos > Móstoles España > >-- Mauricio [[alternative HTML version deleted]]