Estimado Jesús Para Fernández El ejemplo que usted presenta es algo básico pero no por ello lejos de carecer importancia, al respecto hay varios autores de paquetes que abordaron ese problema buscando optimizar, facilitar, etc. Lo que usted piensa es correcto, si desea buscar optimizar puede leer algo de plyr, data.table, reshape (este tiene un video explicando casi lo que usted plantea), y algunas otras opciones. No se preocupe en buscar lo más eficiente, utilice lo que comprende y puede escribir, porque a mi me paso muchas veces que por buscar lo más eficiente no medí ni el tiempo invertido ni la facilidad de mantener mi código. Lógicamente a la larga uno termina manejando varias alternativas para lo mismo, pero por lo que usted pregunta mi consejo es ¿llegó solo a resolverlo? Si es así para usted esa es la mejor alternativa. Dentro de unos días puede buscar otra opción, pero no mezcle todo junto en su cabeza. Deje descansar al cerebro sobre ese problema. Yo pensé hace un tiempo escribir en forma de libro varias formas de realizar lo mismo con R, cosas que no son ?la ciencia ni el gran libro de R?, simplemente lo que aprendí con el tiempo, pero el cansancio mental de realizar esa tarea es impresionante. Por lo cuál no le recomiendo que busque una alternativa óptima para resolver ese problema, si encuentra la solución descanse, luego de unos días regrese a R buscando optimizar. Dentro de sus pensamientos está dividir el data.frame, una forma rápida es por ejemplo Edad[Edad>1 & Edad<3] (los que tienen edad mayor a 1 y menor a 3, por no decir dos años). Si es que no comprendí mal, que también es posible. Javier Rubén Marcuzzi Técnico en Industrias Lácteas Veterinario De: Jesús Para Fernández Enviado: miércoles, 18 de noviembre de 2015 5:02 Para: Carlos Ortega CC: r-help-es en r-project.org Asunto: Re: [R-es] Borrar cada fila 400 Buenas Carlos, Lo que quiero hacer es calcular la media de diferentes regiones con un patrón de repetición. Ayer estaba algo espeso, a ver si ahora consigo explicarme mejor. Tengo un dataframe creado de la union de varios csv. Esta compuesto por n filas y x columnas, a la que he añadido, gracias a vuestros consejos, una columna "nueva", donde se indica el csv al que pertenece. En total tengo un dataframe al uqellamare "datos". La dispoisción queda por tanto de la siguiente forma: x1 x2 x3 .... xn nueva 21 23 32 .... 12 1 27 21 39 .... 14 1 24 22 30 .... 11 1 .............................................. 21 24 32 .... 19 2 27 21 39 .... 14 2 .............................................. 27 22 30 .... 11 n Por tanto quiero ir guardando en una matriz las medias de cada una de las regiones, las cuales serian, por ejemplo: region1,1 (filas 1:20,columnas 1:20) para cada valor diferente de nueva region 2,1 (filas 21:40,columnas1:20) para cada valor diferente de nueva region 1,2 (filas 1:20, columnas 21:20)... y asi para todas. Acabo de pensar que puedo predefinir las zonas y crear esto: zona1<-tapply(as.matrix(datos[1:20,1]),datos$nueva,mean,na.rm=T) zona2<-tapply(as.matrix(datos[1:20,1]),datos$nueva,mean,na.rm=T) y luego unir todo en un unico dataframe datosmedias<-data.frame(zona1,zona2,....) Estoy seguro que hay una manera más eficiente de conseguirlo. Gracias por tdoo JEsús Date: Tue, 17 Nov 2015 20:33:49 +0100 Subject: Re: [R-es] Borrar cada fila 400 From: cof en qualityexcellence.es To: j.para.fernandez en hotmail.com CC: r-help-es en r-project.org ¿Qué quieres decir con "valores que quiera"?. ¿Quieres calcular la media de unas regiones de la matriz con algún tipo de patrón? ¿periodicidad? Si es que no, basta como te mostraba en el ejemplo, definir unos índices (tu 1 y 20) y ya está... Saludos, Carlos Ortega www.qualityexcellence.es El 17 de noviembre de 2015, 19:29, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió: Vale, con as.matrix lo consigo. es poner un mean(as.matrix(1:20,1:20)) y lo obtengo. Ahora lo bonito es como hacerlo para los valores que quiera, isn usar un bucle for, sino un apply, o un tapply...> From: j.para.fernandez en hotmail.com > To: cof en qualityexcellence.es > Date: Tue, 17 Nov 2015 19:17:30 +0100 > CC: r-help-es en r-project.org > Subject: Re: [R-es] Borrar cada fila 400 > > Gracias Carlos una vez más, pero no es exactamente lo que quiero > > Con colMeans estas calculando por columnas, pero yo quiero que calcule asi: > > mean(datos[1:20,1:20]), pero claro, para toda la secuencia. > > > mean(datos[1:20,1:20]) me devuelve el error-> Error in datos[1:2, 1:2] : object of type 'closure' is not subsettable > > > > > > > Date: Tue, 17 Nov 2015 18:34:59 +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. > Indicas con unos indices el trozo que quieres, lo seleccionas (df_df_reg) y sobre él calculas medias por fila o por columna. R tiene funciones específicas para este cálculo. > > #--------------------------- > n_row <- 400 > n_col <- 500 > df_mat <- matrix(rnorm(n_row * n_col), nrow=n_row, ncol=n_col) > df_df <- as.data.frame(df_mat) > > n_row_ini <- 1 > n_row_end <- 20 > n_col_ini <- 1 > n_col_end <- 20 > > df_df_reg <- df_df[n_row_ini:n_row_end, n_col_ini:n_col_end ] > colMeans ( df_df_reg, na.rm=TRUE ) > rowMeans ( df_df_reg, na.rm=TRUE ) > #--------------------------- > > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > El 17 de noviembre de 2015, 18:20, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió: > > > > 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 Jesús Para Fernández > > > >> 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]] > > > > > > > > _______________________________________________ > > > > R-help-es mailing list > > > > R-help-es en r-project.org > > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > [[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]] > > _______________________________________________ > 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]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]
Gracias por el aporte, 
Investigaré las librerias que comentas. 
Un saludo
Jesús
To: j.para.fernandez en hotmail.com; cof en qualityexcellence.es
CC: r-help-es en r-project.org
From: javier.ruben.marcuzzi en gmail.com
Subject: RE: [R-es] Borrar cada fila 400
Date: Wed, 18 Nov 2015 07:57:11 -0300
Estimado Jesús Para Fernández El ejemplo que usted presenta es algo básico pero
no por ello lejos de carecer importancia, al respecto hay varios autores de
paquetes que abordaron ese problema buscando optimizar, facilitar, etc. Lo que
usted piensa es correcto, si desea buscar optimizar puede leer algo de plyr,
data.table, reshape (este tiene un video explicando casi lo que usted plantea),
y algunas otras opciones. No se preocupe en buscar lo más eficiente, utilice lo
que comprende y puede escribir, porque a mi me paso muchas veces que por buscar
lo más eficiente no medí ni el tiempo invertido ni la facilidad de mantener mi
código. Lógicamente a la larga uno termina manejando varias alternativas para lo
mismo, pero por lo que usted pregunta mi consejo es ¿llegó solo a resolverlo? Si
es así para usted esa es la mejor alternativa. Dentro de unos días puede buscar
otra opción, pero no mezcle todo junto en su cabeza. Deje descansar al cerebro
sobre ese problema. Yo pensé hace un tiempo escribir en forma de libro varias
formas de realizar lo mismo con R, cosas que no son ?la ciencia ni el gran libro
de R?, simplemente lo que aprendí con el tiempo, pero el cansancio mental de
realizar esa tarea es impresionante. Por lo cuál no le recomiendo que busque una
alternativa óptima para resolver ese problema, si encuentra la solución
descanse, luego de unos días regrese a R buscando optimizar. Dentro de sus
pensamientos está dividir el data.frame, una forma rápida es por ejemplo
Edad[Edad>1 & Edad<3] (los que tienen edad mayor a 1 y menor a 3, por
no decir dos años). Si es que no comprendí mal, que también es posible. Javier
Rubén Marcuzzi
Técnico en Industrias Lácteas
Veterinario 
 
De: Jesús Para Fernández
Enviado: miércoles, 18 de noviembre de 2015 5:02
Para: Carlos Ortega
CC: r-help-es en r-project.org
Asunto: Re: [R-es] Borrar cada fila 400  Buenas Carlos,  Lo que quiero hacer es
calcular la media de diferentes regiones con un patrón de repetición. Ayer
estaba algo espeso, a ver si ahora consigo explicarme mejor.  Tengo un dataframe
creado de la union de varios csv. Esta compuesto por n filas y x columnas, a la
que he añadido, gracias a vuestros consejos, una columna "nueva",
donde se indica el csv al que pertenece. En total tengo un dataframe al
uqellamare "datos".  La dispoisción queda por tanto de la siguiente
forma: x1    x2     x3    ....    xn    nueva21   23    32    ....    12    127 
21    39    ....    14    124   22    30    ....    11   
1..............................................21   24    32    ....   19    227
21    39    ....    14    2..............................................27   22
30    ....    11    n     Por tanto quiero ir guardando en una matriz las medias
de cada una de las regiones, las cuales serian, por ejemplo:region1,1 (filas
1:20,columnas 1:20) para cada valor diferente de nuevaregion 2,1 (filas
21:40,columnas1:20) para cada valor diferente de nuevaregion 1,2 (filas 1:20,
columnas 21:20)... y asi para todas.  Acabo de pensar que puedo predefinir las
zonas y crear esto:
zona1<-tapply(as.matrix(datos[1:20,1]),datos$nueva,mean,na.rm=T)zona2<-tapply(as.matrix(datos[1:20,1]),datos$nueva,mean,na.rm=T)
y luego unir todo en un unico
dataframedatosmedias<-data.frame(zona1,zona2,....) Estoy seguro que hay una
manera más eficiente de conseguirlo.  Gracias por tdooJEsús  Date: Tue, 17 Nov
2015 20:33:49 +0100Subject: Re: [R-es] Borrar cada fila 400From: cof en
qualityexcellence.esTo: j.para.fernandez en hotmail.comCC: r-help-es en
r-project.org ¿Qué quieres decir con "valores que quiera"?.¿Quieres
calcular la media de unas regiones de la matriz con algún tipo de patrón?
¿periodicidad?Si es que no, basta como te mostraba en el ejemplo, definir unos
índices (tu 1 y 20) y ya está... Saludos,Carlos Ortegawww.qualityexcellence.es
El 17 de noviembre de 2015, 19:29, Jesús Para Fernández <j.para.fernandez en
hotmail.com> escribió:   Vale, con as.matrix lo consigo.  es poner un
mean(as.matrix(1:20,1:20)) y lo obtengo.  Ahora lo bonito es como hacerlo para
los valores que quiera, isn usar un bucle for, sino un apply, o un tapply...
> From: j.para.fernandez en hotmail.com> To: cof en
qualityexcellence.es> Date: Tue, 17 Nov 2015 19:17:30 +0100> CC: r-help-es
en r-project.org> Subject: Re: [R-es] Borrar cada fila 400> > Gracias
Carlos una vez más, pero no es exactamente lo que quiero> > Con colMeans
estas calculando por columnas, pero yo quiero que calcule asi:> >
mean(datos[1:20,1:20]), pero claro, para toda la secuencia.> > >
mean(datos[1:20,1:20]) me devuelve el error-> Error in datos[1:2, 1:2] :
object of type 'closure' is not subsettable> > > > > >
> Date: Tue, 17 Nov 2015 18:34:59 +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.> Indicas con unos indices el trozo que
quieres, lo seleccionas (df_df_reg) y sobre él calculas medias por fila o por
columna. R tiene funciones específicas para este cálculo.> >
#---------------------------> n_row <- 400> n_col <- 500> df_mat
<- matrix(rnorm(n_row * n_col), nrow=n_row, ncol=n_col)> df_df <-
as.data.frame(df_mat)> > n_row_ini <- 1 > n_row_end <- 20>
n_col_ini <- 1> n_col_end <- 20> > df_df_reg <-
df_df[n_row_ini:n_row_end, n_col_ini:n_col_end ]> colMeans ( df_df_reg,
na.rm=TRUE )> rowMeans ( df_df_reg, na.rm=TRUE )>
#---------------------------> > > Saludos,> Carlos Ortega>
www.qualityexcellence.es> > > El 17 de noviembre de 2015, 18:20, Jesús
Para Fernández <j.para.fernandez en hotmail.com> escribió:> > >
> 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 Jesús Para Fernández> > > >> 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]]> > > >> > > >
_______________________________________________> > > > R-help-es
mailing list> > > > R-help-es en r-project.org> > > >
https://stat.ethz.ch/mailman/listinfo/r-help-es> > > >        
[[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]]> >
_______________________________________________> R-help-es mailing list>
R-help-es en r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es  
-- Saludos,Carlos Ortegawww.qualityexcellence.es                                
[[alternative HTML version deleted]]
_______________________________________________R-help-es mailing listR-help-es
en r-project.orghttps://stat.ethz.ch/mailman/listinfo/r-help-es
	[[alternative HTML version deleted]]
Jesús,
una manera eficiente de llevarlo es lo siguiente:
Pon todos tus ficheros csv en un directorio que llamaremos "DIR".
Luego, muevete a este directorio con setwd("ruta de DIR").
Una vez hecho, el siguiente codigo debería funcionarte:
ficheros=list.files(pattern="*.csv") 
temp=lapply(as.list(ficheros),read.csv) #lee la lista de data.frame
index <- function(x) {temp[[x]]$region <- x; temp[[x]]} #función para
indexar cada data.frame (variable region)
temp2= lapply(temp,index) #data.frames indexados
datos=do.call(rbind,temp2) #concatena data.frame indexados
tapply(datos$x1,datos$region,mean) #calcula media de la columna "x1"
en cada data.frame
El codigo puede ser más sencillo si utilizas el paquete "plyr".
Un saludo. Olivier
----- Mensaje original -----
De: "Javier Rubén Marcuzzi" <javier.ruben.marcuzzi en gmail.com>
Para: "Jesús Para Fernández" <j.para.fernandez en hotmail.com>,
"Carlos Ortega" <cof en qualityexcellence.es>
CC: r-help-es en r-project.org
Enviados: Miércoles, 18 de Noviembre 2015 11:57:11
Asunto: Re: [R-es] Borrar cada fila 400
Estimado Jesús Para Fernández
El ejemplo que usted presenta es algo básico pero no por ello lejos de carecer
importancia, al respecto hay varios autores de paquetes que abordaron ese
problema buscando optimizar, facilitar, etc.
Lo que usted piensa es correcto, si desea buscar optimizar puede leer algo de
plyr, data.table, reshape (este tiene un video explicando casi lo que usted
plantea), y algunas otras opciones. No se preocupe en buscar lo más eficiente,
utilice lo que comprende y puede escribir, porque a mi me paso muchas veces que
por buscar lo más eficiente no medí ni el tiempo invertido ni la facilidad de
mantener mi código. Lógicamente a la larga uno termina manejando varias
alternativas para lo mismo, pero por lo que usted pregunta mi consejo es ¿llegó
solo a resolverlo? Si es así para usted esa es la mejor alternativa. Dentro de
unos días puede buscar otra opción, pero no mezcle todo junto en su cabeza. Deje
descansar al cerebro sobre ese problema. Yo pensé hace un tiempo escribir en
forma de libro varias formas de realizar lo mismo con R, cosas que no son ?la
ciencia ni el gran libro de R?, simplemente lo que aprendí con el tiempo, pero
el cansancio mental de realizar esa tarea es impresionante. Por lo cuál no le
recomiendo que busque una alternativa óptima para resolver ese problema, si
encuentra la solución descanse, luego de unos días regrese a R buscando
optimizar.
Dentro de sus pensamientos está dividir el data.frame, una forma rápida es por
ejemplo Edad[Edad>1 & Edad<3] (los que tienen edad mayor a 1 y menor a
3, por no decir dos años).
Si es que no comprendí mal, que también es posible.
Javier Rubén Marcuzzi
Técnico en Industrias Lácteas
Veterinario
De: Jesús Para Fernández
Enviado: miércoles, 18 de noviembre de 2015 5:02
Para: Carlos Ortega
CC: r-help-es en r-project.org
Asunto: Re: [R-es] Borrar cada fila 400
Buenas Carlos, 
Lo que quiero hacer es calcular la media de diferentes regiones con un patrón de
repetición. Ayer estaba algo espeso, a ver si ahora consigo explicarme mejor.
Tengo un dataframe creado de la union de varios csv. Esta compuesto por n filas
y x columnas, a la que he añadido, gracias a vuestros consejos, una columna
"nueva", donde se indica el csv al que pertenece. En total tengo un
dataframe al uqellamare "datos".
La dispoisción queda por tanto de la siguiente forma:
x1    x2     x3    ....    xn    nueva
21   23    32    ....    12    1
27   21    39    ....    14    1
24   22    30    ....    11    1
..............................................
21   24    32    ....   19    2
27   21    39    ....    14    2
..............................................
27   22     30    ....    11    n
   
Por tanto quiero ir guardando en una matriz las medias de cada una de las
regiones, las cuales serian, por ejemplo:
region1,1 (filas 1:20,columnas 1:20) para cada valor diferente de nueva
region 2,1 (filas 21:40,columnas1:20) para cada valor diferente de nueva
region 1,2 (filas 1:20, columnas 21:20)...
y asi para todas. 
Acabo de pensar que puedo predefinir las zonas y crear esto:
zona1<-tapply(as.matrix(datos[1:20,1]),datos$nueva,mean,na.rm=T)
zona2<-tapply(as.matrix(datos[1:20,1]),datos$nueva,mean,na.rm=T)
y luego unir todo en un unico dataframe
datosmedias<-data.frame(zona1,zona2,....)
Estoy seguro que hay una manera más eficiente de conseguirlo. 
Gracias por tdoo
JEsús
Date: Tue, 17 Nov 2015 20:33:49 +0100
Subject: Re: [R-es] Borrar cada fila 400
From: cof en qualityexcellence.es
To: j.para.fernandez en hotmail.com
CC: r-help-es en r-project.org
¿Qué quieres decir con "valores que quiera"?.
¿Quieres calcular la media de unas regiones de la matriz con algún tipo de
patrón? ¿periodicidad?
Si es que no, basta como te mostraba en el ejemplo, definir unos índices (tu 1 y
20) y ya está...
Saludos,
Carlos Ortega
www.qualityexcellence.es
El 17 de noviembre de 2015, 19:29, Jesús Para Fernández <j.para.fernandez en
hotmail.com> escribió:
Vale, con as.matrix lo consigo. 
es poner un mean(as.matrix(1:20,1:20)) y lo obtengo. 
Ahora lo bonito es como hacerlo para los valores que quiera, isn usar un bucle
for, sino un apply, o un tapply...
> From: j.para.fernandez en hotmail.com
> To: cof en qualityexcellence.es
> Date: Tue, 17 Nov 2015 19:17:30 +0100
> CC: r-help-es en r-project.org
> Subject: Re: [R-es] Borrar cada fila 400
> 
> Gracias Carlos una vez más, pero no es exactamente lo que quiero
> 
> Con colMeans estas calculando por columnas, pero yo quiero que calcule asi:
> 
> mean(datos[1:20,1:20]), pero claro, para toda la secuencia.
> 
> 
> mean(datos[1:20,1:20]) me devuelve el error-> Error in datos[1:2, 1:2] :
object of type 'closure' is not subsettable
> 
> 
> 
> 
> 
> 
> Date: Tue, 17 Nov 2015 18:34:59 +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.
> Indicas con unos indices el trozo que quieres, lo seleccionas (df_df_reg) y
sobre él calculas medias por fila o por columna. R tiene funciones específicas
para este cálculo.
> 
> #---------------------------
> n_row <- 400
> n_col <- 500
> df_mat <- matrix(rnorm(n_row * n_col), nrow=n_row, ncol=n_col)
> df_df <- as.data.frame(df_mat)
> 
> n_row_ini <- 1 
> n_row_end <- 20
> n_col_ini <- 1
> n_col_end <- 20
> 
> df_df_reg <- df_df[n_row_ini:n_row_end, n_col_ini:n_col_end ]
> colMeans ( df_df_reg, na.rm=TRUE )
> rowMeans ( df_df_reg, na.rm=TRUE )
> #---------------------------
> 
> 
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
> 
> 
> El 17 de noviembre de 2015, 18:20, Jesús Para Fernández
<j.para.fernandez en hotmail.com> escribió:
> 
> 
> 
> 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 Jesús Para Fernández
> 
> > >> 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]]
> 
> > >
> 
> > > _______________________________________________
> 
> > > R-help-es mailing list
> 
> > > R-help-es en r-project.org
> 
> > > https://stat.ethz.ch/mailman/listinfo/r-help-es
> 
> 
> 
>         [[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]]
> 
> _______________________________________________
> 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]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
	[[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
Ups!
En el codigo anterior sustituye 
temp2= lapply(temp,index) #data.frames indexados
por 
temp2= lapply(seq_along(temp),index) #data.frames indexados
Un saludo. Olivier
----- Mensaje original -----
De: "Olivier Nuñez" <onunez en unex.es>
Para: "Javier Rubén Marcuzzi" <javier.ruben.marcuzzi en
gmail.com>
CC: r-help-es en r-project.org
Enviados: Miércoles, 18 de Noviembre 2015 13:15:52
Asunto: Re: [R-es] Borrar cada fila 400
Jesús,
una manera eficiente de llevarlo es lo siguiente:
Pon todos tus ficheros csv en un directorio que llamaremos "DIR".
Luego, muevete a este directorio con setwd("ruta de DIR").
Una vez hecho, el siguiente codigo debería funcionarte:
ficheros=list.files(pattern="*.csv") 
temp=lapply(as.list(ficheros),read.csv) #lee la lista de data.frame
index <- function(x) {temp[[x]]$region <- x; temp[[x]]} #función para
indexar cada data.frame (variable region)
temp2= lapply(temp,index) #data.frames indexados
datos=do.call(rbind,temp2) #concatena data.frame indexados
tapply(datos$x1,datos$region,mean) #calcula media de la columna "x1"
en cada data.frame
El codigo puede ser más sencillo si utilizas el paquete "plyr".
Un saludo. Olivier
----- Mensaje original -----
De: "Javier Rubén Marcuzzi" <javier.ruben.marcuzzi en gmail.com>
Para: "Jesús Para Fernández" <j.para.fernandez en hotmail.com>,
"Carlos Ortega" <cof en qualityexcellence.es>
CC: r-help-es en r-project.org
Enviados: Miércoles, 18 de Noviembre 2015 11:57:11
Asunto: Re: [R-es] Borrar cada fila 400
Estimado Jesús Para Fernández
El ejemplo que usted presenta es algo básico pero no por ello lejos de carecer
importancia, al respecto hay varios autores de paquetes que abordaron ese
problema buscando optimizar, facilitar, etc.
Lo que usted piensa es correcto, si desea buscar optimizar puede leer algo de
plyr, data.table, reshape (este tiene un video explicando casi lo que usted
plantea), y algunas otras opciones. No se preocupe en buscar lo más eficiente,
utilice lo que comprende y puede escribir, porque a mi me paso muchas veces que
por buscar lo más eficiente no medí ni el tiempo invertido ni la facilidad de
mantener mi código. Lógicamente a la larga uno termina manejando varias
alternativas para lo mismo, pero por lo que usted pregunta mi consejo es ¿llegó
solo a resolverlo? Si es así para usted esa es la mejor alternativa. Dentro de
unos días puede buscar otra opción, pero no mezcle todo junto en su cabeza. Deje
descansar al cerebro sobre ese problema. Yo pensé hace un tiempo escribir en
forma de libro varias formas de realizar lo mismo con R, cosas que no son ?la
ciencia ni el gran libro de R?, simplemente lo que aprendí con el tiempo, pero
el cansancio mental de realizar esa tarea es impresionante. Por lo cuál no le
recomiendo que busque una alternativa óptima para resolver ese problema, si
encuentra la solución descanse, luego de unos días regrese a R buscando
optimizar.
Dentro de sus pensamientos está dividir el data.frame, una forma rápida es por
ejemplo Edad[Edad>1 & Edad<3] (los que tienen edad mayor a 1 y menor a
3, por no decir dos años).
Si es que no comprendí mal, que también es posible.
Javier Rubén Marcuzzi
Técnico en Industrias Lácteas
Veterinario
De: Jesús Para Fernández
Enviado: miércoles, 18 de noviembre de 2015 5:02
Para: Carlos Ortega
CC: r-help-es en r-project.org
Asunto: Re: [R-es] Borrar cada fila 400
Buenas Carlos, 
Lo que quiero hacer es calcular la media de diferentes regiones con un patrón de
repetición. Ayer estaba algo espeso, a ver si ahora consigo explicarme mejor.
Tengo un dataframe creado de la union de varios csv. Esta compuesto por n filas
y x columnas, a la que he añadido, gracias a vuestros consejos, una columna
"nueva", donde se indica el csv al que pertenece. En total tengo un
dataframe al uqellamare "datos".
La dispoisción queda por tanto de la siguiente forma:
x1    x2     x3    ....    xn    nueva
21   23    32    ....    12    1
27   21    39    ....    14    1
24   22    30    ....    11    1
..............................................
21   24    32    ....   19    2
27   21    39    ....    14    2
..............................................
27   22     30    ....    11    n
   
Por tanto quiero ir guardando en una matriz las medias de cada una de las
regiones, las cuales serian, por ejemplo:
region1,1 (filas 1:20,columnas 1:20) para cada valor diferente de nueva
region 2,1 (filas 21:40,columnas1:20) para cada valor diferente de nueva
region 1,2 (filas 1:20, columnas 21:20)...
y asi para todas. 
Acabo de pensar que puedo predefinir las zonas y crear esto:
zona1<-tapply(as.matrix(datos[1:20,1]),datos$nueva,mean,na.rm=T)
zona2<-tapply(as.matrix(datos[1:20,1]),datos$nueva,mean,na.rm=T)
y luego unir todo en un unico dataframe
datosmedias<-data.frame(zona1,zona2,....)
Estoy seguro que hay una manera más eficiente de conseguirlo. 
Gracias por tdoo
JEsús
Date: Tue, 17 Nov 2015 20:33:49 +0100
Subject: Re: [R-es] Borrar cada fila 400
From: cof en qualityexcellence.es
To: j.para.fernandez en hotmail.com
CC: r-help-es en r-project.org
¿Qué quieres decir con "valores que quiera"?.
¿Quieres calcular la media de unas regiones de la matriz con algún tipo de
patrón? ¿periodicidad?
Si es que no, basta como te mostraba en el ejemplo, definir unos índices (tu 1 y
20) y ya está...
Saludos,
Carlos Ortega
www.qualityexcellence.es
El 17 de noviembre de 2015, 19:29, Jesús Para Fernández <j.para.fernandez en
hotmail.com> escribió:
Vale, con as.matrix lo consigo. 
es poner un mean(as.matrix(1:20,1:20)) y lo obtengo. 
Ahora lo bonito es como hacerlo para los valores que quiera, isn usar un bucle
for, sino un apply, o un tapply...
> From: j.para.fernandez en hotmail.com
> To: cof en qualityexcellence.es
> Date: Tue, 17 Nov 2015 19:17:30 +0100
> CC: r-help-es en r-project.org
> Subject: Re: [R-es] Borrar cada fila 400
> 
> Gracias Carlos una vez más, pero no es exactamente lo que quiero
> 
> Con colMeans estas calculando por columnas, pero yo quiero que calcule asi:
> 
> mean(datos[1:20,1:20]), pero claro, para toda la secuencia.
> 
> 
> mean(datos[1:20,1:20]) me devuelve el error-> Error in datos[1:2, 1:2] :
object of type 'closure' is not subsettable
> 
> 
> 
> 
> 
> 
> Date: Tue, 17 Nov 2015 18:34:59 +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.
> Indicas con unos indices el trozo que quieres, lo seleccionas (df_df_reg) y
sobre él calculas medias por fila o por columna. R tiene funciones específicas
para este cálculo.
> 
> #---------------------------
> n_row <- 400
> n_col <- 500
> df_mat <- matrix(rnorm(n_row * n_col), nrow=n_row, ncol=n_col)
> df_df <- as.data.frame(df_mat)
> 
> n_row_ini <- 1 
> n_row_end <- 20
> n_col_ini <- 1
> n_col_end <- 20
> 
> df_df_reg <- df_df[n_row_ini:n_row_end, n_col_ini:n_col_end ]
> colMeans ( df_df_reg, na.rm=TRUE )
> rowMeans ( df_df_reg, na.rm=TRUE )
> #---------------------------
> 
> 
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
> 
> 
> El 17 de noviembre de 2015, 18:20, Jesús Para Fernández
<j.para.fernandez en hotmail.com> escribió:
> 
> 
> 
> 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 Jesús Para Fernández
> 
> > >> 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]]
> 
> > >
> 
> > > _______________________________________________
> 
> > > R-help-es mailing list
> 
> > > R-help-es en r-project.org
> 
> > > https://stat.ethz.ch/mailman/listinfo/r-help-es
> 
> 
> 
>         [[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]]
> 
> _______________________________________________
> 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]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
	[[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
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es