[R-es] unir varios archivos .csv en una serie historica

Carlos Ortega cof en qualityexcellence.es
Jue Ago 10 15:33:23 CEST 2017


​Yo quitaría los acentos de los nombres de las carpetas (y más en la de tu
usuario)...
Y luego volvería a ejecutar.

Gracias,
Carlos.​

El 10 de agosto de 2017, 14:45, Sebastian Kruk <residuo.solow en gmail.com>
escribió:

> Hola Carlos. Probé instalar easycsv pero me dio errores:
>
>
>
> > install.packages("easycsv")
>
> installing the source package ‘easycsv’
>
>
>
> probando la URL 'https://cloud.r-project.org/
> src/contrib/easycsv_1.0.2.tar.gz'
>
> Content type 'application/x-gzip' length 8551 bytes
>
> downloaded 8551 bytes
>
>
>
> * installing *source* package 'easycsv' ...
>
> ** package 'easycsv' successfully unpacked and MD5 sums checked
>
> Warning in file(file, if (append) "a" else "w") :
>
>   cannot open file 'C:/Users/Sebastian/Documents/
> R/R-3.3.3/library/easycsv/DESCRIPTION': No such file or directory
>
> Error in file(file, if (append) "a" else "w") :
>
>   no se puede abrir la conexión
>
> ERROR: installing package DESCRIPTION failed for package 'easycsv'
>
> * removing 'C:/Users/Sebastián/Documents/R/R-3.3.3/library/easycsv'
>
>
>
> The downloaded source packages are in
>
>         ‘C:\Users\Sebastián\AppData\Local\Temp\Rtmp0CrOmO\
> downloaded_packages’
>
> Warning messages:
>
> 1: comando ejecutado '"C:/Users/Sebastián/Documents/R/R-3.3.3/bin/x64/R"
> CMD INSTALL -l "C:\Users\Sebastián\Documents\R\R-3.3.3\library"
> C:\Users\SEBAST~2\AppData\Local\Temp\Rtmp0CrOmO/
> downloaded_packages/easycsv_1.0.2.tar.gz' tiene estatus 1
>
> 2: In install.packages("easycsv") :
>
>   installation of package ‘easycsv’ had non-zero exit status
>
>
>
> Aparentemente el error está en que mi usuario es Sebastián y cuando busca
> mi carpeta personal pone Sebastian.
>
>
>
> ¿Cómo puedo solucionarlo?
>
>
>
> Saludos,
>
>
>
> Sebastián.
>
>
>
> Enviado desde Correo <https://go.microsoft.com/fwlink/?LinkId=550986>
> para Windows 10
>
>
>
> *De: *Carlos Ortega <cof en qualityexcellence.es>
> *Enviado: *martes, 8 de agosto de 2017 17:59
> *Para: *Sebastian Kruk <residuo.solow en gmail.com>
> *CC: *eric <ericconchamunoz en gmail.com>; Lista R <r-help-es en r-project.org>
>
> *Asunto: *Re: [R-es] unir varios archivos .csv en una serie historica
>
>
>
> Hola,
>
>
>
> Para la próxima vez...:
>
>
>
> https://cloud.r-project.org/web/packages/easycsv/index.html
>
>
>
> Saludos,
>
> Carlos Ortega
>
> www.qualityexcellence.es
>
>
>
> El 8 de agosto de 2017, 15:04, Sebastian Kruk <residuo.solow en gmail.com>
> escribió:
>
> Hola Eric. Muchas gracias. Era exactamente lo que quería. Te agradezco
> mucho. Saludos, Sebastián.
>
> Enviado desde Correo para Windows 10
>
> De: eric
> Enviado: martes, 8 de agosto de 2017 8:25
>
> Para: Sebastian Kruk; Lista R
> Asunto: Re: [R-es] unir varios archivos .csv en una serie historica
>
> hola sebastian, invente 3 archivos con la estructura que describes y probe
> el codigo, le hice un par de arreglos necesarios, ahi va ... funciona bien
> con los archivos que te adjunto:
> # usando la libreria data.table
> library(data.table)
> setwd("/tu/directorio/con/los/datos/")
> filenames <- list.files(path = "/tu/directorio/con/los/datos/")
>   # creas un data.table que contendra TODOS los datos de tus archivos
> datos <- data.table()
>   # ciclo para leer cada archivo
> i<-1
> for (i in 1:length(filenames))
>     {
>     # 1. leer los datos de un unico archivo
>     data <- data.table()
>     data <- fread(filenames[i], header=TRUE)
>     # 2. transformar la estructura del archivo de filas con hora y
> columnas con dias a ( columna con dia, columna con hora y columna con
> precio )
>       # primero usar stack() ... suponiendo que tu primera columna de
> datos es la hora del dia y tiene encabezado "horas"
>     data.stacked <- data[,cbind(hora,stack(data, select=-hora))]
>     data.stacked <- as.data.table(data.stacked)
>     setnames(data.stacked,c("ind","values"),c("dia","precio"))
>     # 3. agregar la columna con el nombre del mes
>     data.stacked[, mes:=as.character(substr(filenames[i],1,3))]
>     # 4. uniendo los datos
>     datos <- rbind(datos,data.stacked)
>     i <- i+1
>     }
> espero que te sirva,
> suerte !!!!!!!!!!!
> eric.
>
>
>
> On 08/08/2017 06:50 AM, Sebastian Kruk wrote:
> Hola Eric. Me diste una muy buena orientación.
> Para algunos años los archivos son de excel donde cada uno tiene 12 hojas,
> una hoja por mes.
>
> Cada hoja tiene el siguiente formato:
>
> Hora 1 2 3 4 … 31
> 1 0 0 0 0 … 23
> 2 0 0 0 24 … 0
> 3 0 0 0 24,5 … 21
> 4 0 0 0 26 … 12
> ………………………
> 24 0 0 0 0 … 0
>
> Por ejemplo en el día 1 el precio en las horas 1, 2, 3, 4 y 24 es 0, en
> cambio el día 31 el precio a la hora 1 es 23, a las 2 es 0, a las 3 es 21,
> a las 4 es 12 y a las 24 es 0.
>
> Espero no haberlos confundido más.
>
> Gracias,
>
> Sebastián.
>
> Enviado desde mi teléfono con Windows 10
>
> De: eric
> Enviado: martes, 8 de agosto de 2017 6:52
> Para: Sebastian Kruk; Lista R
> Asunto: Re: [R-es] unir varios archivos .csv en una serie historica
>
> Hola sebastian, sin el archivo de datos para probar y ver la estructura de
> los datos es un poco dificil, pero haciendo algunas suposiciones imagino
> que algo como esto te puede ayudar, seguro tendras que hacer ajustes:
> # usando la libreria data.table
> library(data.table)
> filenames <- list.files(path = "/tu/path")
>   # creas un data.table que contendra TODOS los datos de tus archivos
> datos <- data.table()
>   # ciclo para leer cada archivo
> i<-1
> for (i in 1:length(filenames))
>     {
>     # 0. crear un data.table para contener los datos de tu archivo de
> forma temporal dentro del ciclo
>         data <- data.table()
>     # 1. leer los datos de un unico archivo
>     data <- as.data.table(fread(filenames[i], header=TRUE))
>
>     # 2. transformar la estructura del archivo de filas con hora y
> columnas con dias a ( columna con dia, columna con hora y columna con
> precio )
>       # primero usar stack() ... suponiendo que tu primera columna de
> datos es la hora del dia y tiene encabezado "horas"
>     data.stacked <- data[,cbind(horas,stack(data, select=-horas))]
>     data.stacked <- as.data.table(data.stacked)
>
>     # 3. agregar la columna con el nombre del mes
>     data.stacked[, mes:=as.character(substr(filenames[i],
> posiciondelPRIMERcaracterdelnombredelmes,posiciondelULTIMOcaracterdelno
> mbredelmes))]
>
>     # 4. uniendo los datos
>     datos <- rbind(datos,data)
>     i <- i+1
>     }
> Ojala te sirva,
> Suerte !!!!!!!!!!!!
> Eric.
>
>
>
> On 08/07/2017 06:17 PM, Sebastian Kruk wrote:
> Estimados usuarios-R:
>
> Muy buenas noches.
>
> Tengo una serie de archivos csv que contienen los precios mayoristas de
> electricidad por hora.
>
> Cada archivo csv corresponde a un mes de un cierto año.
>
> Cada columna corresponde a un día del mes y cada fila a una hora del día (1
> a 24 horas).
>
> ¿Hay alguna forma rápida de importar todos los datos y formar un vector
> columna en que cada observación corresponde al precio que se dio en cierta
> hora en cierto dia en cierto mes en cierto año?
>
> Desde ya muchas gracias,
>
> Sebastián.
>
>   [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>
>
> --
> Forest Engineer
> Master in Environmental and Natural Resource Economics
> Ph.D. student in Sciences of Natural Resources at La Frontera University
> Member in AguaDeTemu2030, citizen movement for Temuco with green city
> standards for living
>
> Nota: Las tildes se han omitido para asegurar compatibilidad con algunos
> lectores de correo.
>
>
>
> --
> Forest Engineer
> Master in Environmental and Natural Resource Economics
> Ph.D. student in Sciences of Natural Resources at La Frontera University
> Member in AguaDeTemu2030, citizen movement for Temuco with green city
> standards for living
>
> Nota: Las tildes se han omitido para asegurar compatibilidad con algunos
> lectores de correo.
>
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> 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
>
>
>



-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es