Hola comunidad eRrera, Acudo a ustedes después de pelearme un rato y salir perdedor con la lectura de un archivo json. Por el momento he conseguido leerlo y transformar la parte que me interesa a data frame, sin embargo no consigo poder manipular los datos para calcular por ejemplo la media de una de las variables. El código que estoy ejecutando es: library(jsonlite) json_data <- fromJSON(file.choose()) listing <- as.data.frame(do.call(("cbind"), flatten(json_data$listing))) mean(listing$currentPrice.amount) y me devuelve el error: [1] NA Warning message: In mean.default(listing$currentPrice.amount) : argument is not numeric or logical: returning NA Adjunto el archivo json por si es de utilidad. Gracias de antemano por si alguien me puede ayudar para transformar el archivo json en un data frame con características normales. Saludos, Diego Iglesias ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20180903/ec9dcc46/attachment-0001.html> ------------ próxima parte ------------ A non-text attachment was scrubbed... Name: event-data.json Type: application/json Size: 162972 bytes Desc: no disponible URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20180903/ec9dcc46/attachment-0001.json>
Hola Diego, Probablemente, al sacar los datos del archivo json te los está guardando como carácter. Prueba con mean(as.numeric(listing$currentPrice.amount), na.rm = TRUE) On Tue, 4 Sep 2018 at 02:00 Diego Iglesias <diego.ibayo en gmail.com> wrote:> Hola comunidad eRrera, > > Acudo a ustedes después de pelearme un rato y salir perdedor con la > lectura de un archivo json. Por el momento he conseguido leerlo y > transformar la parte que me interesa a data frame, sin embargo no consigo > poder manipular los datos para calcular por ejemplo la media de una de las > variables. > > El código que estoy ejecutando es: > > library(jsonlite) > json_data <- fromJSON(file.choose()) > listing <- as.data.frame(do.call(("cbind"), flatten(json_data$listing))) > mean(listing$currentPrice.amount) > > y me devuelve el error: > > [1] NA > Warning message: > In mean.default(listing$currentPrice.amount) : > argument is not numeric or logical: returning NA > > Adjunto el archivo json por si es de utilidad. Gracias de antemano por si > alguien me puede ayudar para transformar el archivo json en un data frame > con características normales. > > Saludos, > > Diego Iglesias > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- *Víctor Granda García* Data Technician v.granda en creaf.uab.cat Tel. +34 93 581 33 53 Campus UAB. Edifici C. 08193 Bellaterra (Barcelona) | *www.creaf.cat* <http://www.creaf.uab.es/cat/index.htm> Abans d'imprimir aquest missatge electrònic penseu en el medi ambient. [[alternative HTML version deleted]]
Hola, Sí, el problema es este:> head(listing$currentPrice.amount)[[1]] [1] 9.7 [[2]] [1] 9.7 [[3]] [1] 10.49 [[4]] [1] 10.9 [[5]] [1] 12.1 que "currentPrice.amount" es una lista. Simplemente con esto lo arreglas:> my_listing <- unlist(listing$currentPrice.amount) > head(my_listing)[1] 9.70 9.70 10.49 10.90 12.10 12.10> mean(my_listing)[1] 63.77911 Gracias, Carlos Ortega www.qualityexcellence.es El 4 de septiembre de 2018, 2:00, Diego Iglesias <diego.ibayo en gmail.com> escribió:> Hola comunidad eRrera, > > Acudo a ustedes después de pelearme un rato y salir perdedor con la > lectura de un archivo json. Por el momento he conseguido leerlo y > transformar la parte que me interesa a data frame, sin embargo no consigo > poder manipular los datos para calcular por ejemplo la media de una de las > variables. > > El código que estoy ejecutando es: > > library(jsonlite) > json_data <- fromJSON(file.choose()) > listing <- as.data.frame(do.call(("cbind"), flatten(json_data$listing))) > mean(listing$currentPrice.amount) > > y me devuelve el error: > > [1] NA > Warning message: > In mean.default(listing$currentPrice.amount) : > argument is not numeric or logical: returning NA > > Adjunto el archivo json por si es de utilidad. Gracias de antemano por si > alguien me puede ayudar para transformar el archivo json en un data frame > con características normales. > > Saludos, > > Diego Iglesias > > _______________________________________________ > 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 [[alternative HTML version deleted]]
Gracias Carlos y Victor por la ayuda, ambas soluciones me funcionaron bien para el problema. Saludos, Diego Iglesias El mar., 4 sept. 2018 a las 3:15, Carlos Ortega (<cof en qualityexcellence.es>) escribió:> Hola, > > Sí, el problema es este: > > > head(listing$currentPrice.amount) > [[1]] > [1] 9.7 > > [[2]] > [1] 9.7 > > [[3]] > [1] 10.49 > > [[4]] > [1] 10.9 > > [[5]] > [1] 12.1 > > que "currentPrice.amount" es una lista. > Simplemente con esto lo arreglas: > > > my_listing <- unlist(listing$currentPrice.amount) > > head(my_listing) > [1] 9.70 9.70 10.49 10.90 12.10 12.10 > > mean(my_listing) > [1] 63.77911 > > Gracias, > Carlos Ortega > www.qualityexcellence.es > > El 4 de septiembre de 2018, 2:00, Diego Iglesias <diego.ibayo en gmail.com> > escribió: > >> Hola comunidad eRrera, >> >> Acudo a ustedes después de pelearme un rato y salir perdedor con la >> lectura de un archivo json. Por el momento he conseguido leerlo y >> transformar la parte que me interesa a data frame, sin embargo no consigo >> poder manipular los datos para calcular por ejemplo la media de una de las >> variables. >> >> El código que estoy ejecutando es: >> >> library(jsonlite) >> json_data <- fromJSON(file.choose()) >> listing <- as.data.frame(do.call(("cbind"), flatten(json_data$listing))) >> mean(listing$currentPrice.amount) >> >> y me devuelve el error: >> >> [1] NA >> Warning message: >> In mean.default(listing$currentPrice.amount) : >> argument is not numeric or logical: returning NA >> >> Adjunto el archivo json por si es de utilidad. Gracias de antemano por si >> alguien me puede ayudar para transformar el archivo json en un data frame >> con características normales. >> >> Saludos, >> >> Diego Iglesias >> >> _______________________________________________ >> 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 >[[alternative HTML version deleted]]