Gracias por el aporte, 

Investigaré las librerias que comentas. 

Un saludo
Jesús

To: j.para.fernan...@hotmail.com; c...@qualityexcellence.es
CC: r-help-es@r-project.org
From: javier.ruben.marcu...@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@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: 
c...@qualityexcellence.esto: j.para.fernandez@hotmail.comCC: 
r-help-es@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.fernan...@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.fernan...@hotmail.com> To: c...@qualityexcellence.es> 
Date: Tue, 17 Nov 2015 19:17:30 +0100> CC: r-help-es@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: c...@qualityexcellence.es> To: j.para.fernan...@hotmail.com> CC: 
c...@datanalytics.com; r-help-es@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.fernan...@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: c...@qualityexcellence.es> To: 
j.para.fernan...@hotmail.com> CC: c...@datanalytics.com; 
r-help-es@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.fernan...@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: 
c...@datanalytics.com> > > To: j.para.fernan...@hotmail.com> > > CC: 
josea.bartol...@mineco.es; r-help-es@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.fernan...@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.bartol...@mineco.es> > 
> >> To: j.para.fernan...@hotmail.com; r-help-es@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-boun...@r-project.org] En nombre de Jesús 
Para Fernández> > > >> Enviado el: Tuesday, November 17, 2015 3:15 PM> > > >> 
Para: r-help-es@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@r-project.org> > > > 
https://stat.ethz.ch/mailman/listinfo/r-help-es> > > >         [[alternative 
HTML version deleted]]> > > > _______________________________________________> 
> R-help-es mailing list> > R-help-es@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@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@r-project.orghttps://stat.ethz.ch/mailman/listinfo/r-help-es      
                                      
        [[alternative HTML version deleted]]

_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a