La verad es que es un asolución sencilla pero muy eficaz.
Ya con esta siguiente duda termino:
La matriz de cada csv es de 400x500, es decir, 400 filas y 500 columnas.
Si quiero calcular la media de diferentes regiones del csv, por ejemplo la
media de las 20 primeras filas y 20 primreas columnas, pero del que tiene
los 50.000 registros, tomando el valor 1, como pued hacerlo??
He probado con tapply(datos,new,mean,na.rm=T) pero a parte de darme error
no segmenta como quiero.
Gracias
------------------------------
Date: Tue, 17 Nov 2015 16:45:03 +0100
Subject: Re: [R-es] Borrar cada fila 400
From: cof en qualityexcellence.es
To: j.para.fernandez en hotmail.com
CC: cgb en datanalytics.com; r-help-es en r-project.org
Hola,
Esta es una forma:
DF <- data.frame(a=rnorm(1000))
DF$new <- 1 + floor(1:nrow(DF) / 400)
unique(DF$new)
[1] 1 2 3
Saludos,
Carlos Ortega
www.qualityexcellence.es
El 17 de noviembre de 2015, 15:50, Jesús Para Fernández <
j.para.fernandez en hotmail.com> escribió:
Entiendo la logica pero no veo el como hacerlo.
No se como implementar el 1+floor(1:nrow(datos)/400))
Gracias
Jesús
Date: Tue, 17 Nov 2015 15:31:39 +0100
Subject: Re: [R-es] Borrar cada fila 400
From: cgb en datanalytics.com
To: j.para.fernandez en hotmail.com
CC: josea.bartolome en mineco.es; r-help-es en r-project.org
1 + floor(1:nrow(datos) / 400)
Pura aritmética, de nuevo.
Un saludo,
Carlos J. Gil Bellosta
http://www.datanalytics.com
El dÃa 17 de noviembre de 2015, 15:28, Jesús Para Fernández
<j.para.fernandez en hotmail.com> escribió:
Gracuas a todos!!!
Por cierto, esta ya es de nota. Si quiero agregar una columna, y que
cada 400 piezsa el valor se incremente en una unidad, es decir las 400
primeras, tendrian cada fila el valor 1. Las siguientes 400, 2, ....
Lo he hecho con un for, pero va bastante lento:
k<-1
for(i in 1:length(datos[,1])){
if(i%%400 == 0){k = k +1}
datos[i,9] <- k;
}
From: josea.bartolome en mineco.es
To: j.para.fernandez en hotmail.com; r-help-es en r-project.org
Subject: RE: [R-es] Borrar cada fila 400
Date: Tue, 17 Nov 2015 14:22:14 +0000
Prueba con:
Datos[-seq(from = 400, to=50000, by = 400), ]
No necesitas un buche, para eliminar las filas.
Un cordial saludo.
-----Mensaje original-----
De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de
Enviado el: Tuesday, November 17, 2015 3:15 PM
Para: r-help-es en r-project.org
Asunto: [R-es] Borrar cada fila 400
Buenas, tengo un csv [csv final] con 50000 filas, que es uni?n de
varios csv [csv particular].
Cada csv [csv particular] tiene en la ?ltima fila, la 400, una serie
de valores que quiero eliminar, por lo que del [csv filan] quiero borrar la
linea 400,800,1200,....
Lo he intentado con un bucle for:
for(i in 1:50000){
if(i%%400 == 0) {datos[-i,]}
}
Pero no me funciona. Adem?s me han dicho que con apply puede ser
mucho m?s eficiente el algoritmo. ?Alguna idea?
Gracias
[[alternative HTML version deleted]]
[[alternative HTML version deleted]]