Hola Javier, gracias por tu respuesta, explico de nuevo. Luego de varios calculos, llego a un dataframe con varias observaciones, llamado resuu: Letra Suelo result 1 a 2 23 2 b 2 15 3 c 2 36 4 a 3 20 5 b 3 2 6 c 3 36 7 a 2 32 8 b 2 25 9 c 3 32 ... La primer columna que no tiene cabecera o etiqueta, aparece en la consola en color gris y es un identificador de las filas Cuando quiero resumir, usando resu<-with(resuu data.frame( , Letra=unique(Letra), Suelo=unique(Suelo), ha= tapply(resulr,Suelo,sum))) El nuevo dataframe tiene como identificador de filas los valores de la variable LETRAS: Letra Suelo ha a b 2 145 b c 2 456 c a 3 60 Si quiero hacer algo con ese nuevo dataframe, agrupar por la variable Letra, etc. se confunde porque toma como valor de "a", "b" o "c" el identificador y no la variable LETRAS. Mi pregunta es como cambiar el identificado de las filas a numérico o como evitar q pase lo que explique arriba.. Gracias El 14 de septiembre de 2017, 10:11, Javier Marcuzzi< javier.ruben.marcuzzi en gmail.com> escribió:> Estimado Andrés Hirigoyen > > > > Mi respuesta tiene dos partes, la primera es que no se comprende o por lo > menos en mi caso, desde donde viene el problema con el código que publica, > la segunda parte es suponiendo que todo estaría correcto menos el > data.frame, yo crearía un nuevo data.frame solo con las columnas que deseo, > luego uso el código de resumen, y puedo borrar el Segundo data.frame. > > > > Otra forma es tomar cualquier ejemplo publicado o código propio que > funcione y reemplazar los datos, el cometer un error de tipeo es muy fácil > y difícil de encontrar. > > > > Disculpas por errors idiomáticos, esta cosa me está pasando del español al > inglés en forma automática. > > > > Javier Rubén Marcuzzi > > > > *De: *Andres Hirigoyen <andreshirigoyen en gmail.com> > *Enviado: *martes, 12 de septiembre de 2017 15:27 > *Para: *Lista R <r-help-es en r-project.org> > *Asunto: *[R-es] Creación de data frame > > > > Buenos dias, tengo una consulta con la creación de un nuevo data frame. La > > primer columna, que no forma parte del data frame, toma los valores de la > > variable LETRA lo cual no me permite luego seguir haciendo procedimentos ya > > q no ordena. Va ejemplo > > > > Parto de un data frame (llamado resu), con las variables Letra, Suelo y > > ha, quiero hacer uno nuevo que resuma las hectáreas (ha) por Letra. > > > > > > resu<-with(resuu data.frame( , > > Letra=unique(Letra), > > Suelo=unique(Suelo), > > ha= tapply(resulr,Suelo,sum))) > > Resultado: > > > > Letra Suelo ha > > a b 2 145 > > b c 2 456 > > c a 2 60 > > > > > > Esa primer columna debería de estar numerada de forma lógica de 1 a 3 por > > ejemplo. Ya intente cambiando el orden de las variables, Suelo y Letra, > > pero el resultado es el mismo. > > > > Espero haber sido claro, gracias por la ayuda > > > > [[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 > > >-- *Andrés Hirigoyen* * Prof. Ciencias Biológicas* *Ing. Agr. Forestal (MSC) * [[alternative HTML version deleted]]
Hola prueba: rownames(resu) <- NULL Saludos ________________________________ De: R-help-es <r-help-es-bounces en r-project.org> en nombre de Andres Hirigoyen <andreshirigoyen en gmail.com> Enviado: jueves, 14 de septiembre de 2017 10:13:37 a. m. Para: Javier Marcuzzi CC: Lista R Asunto: Re: [R-es] Creación de data frame Hola Javier, gracias por tu respuesta, explico de nuevo. Luego de varios calculos, llego a un dataframe con varias observaciones, llamado resuu: Letra Suelo result 1 a 2 23 2 b 2 15 3 c 2 36 4 a 3 20 5 b 3 2 6 c 3 36 7 a 2 32 8 b 2 25 9 c 3 32 ... La primer columna que no tiene cabecera o etiqueta, aparece en la consola en color gris y es un identificador de las filas Cuando quiero resumir, usando resu<-with(resuu data.frame( , Letra=unique(Letra), Suelo=unique(Suelo), ha= tapply(resulr,Suelo,sum))) El nuevo dataframe tiene como identificador de filas los valores de la variable LETRAS: Letra Suelo ha a b 2 145 b c 2 456 c a 3 60 Si quiero hacer algo con ese nuevo dataframe, agrupar por la variable Letra, etc. se confunde porque toma como valor de "a", "b" o "c" el identificador y no la variable LETRAS. Mi pregunta es como cambiar el identificado de las filas a numérico o como evitar q pase lo que explique arriba.. Gracias El 14 de septiembre de 2017, 10:11, Javier Marcuzzi< javier.ruben.marcuzzi en gmail.com> escribió:> Estimado Andrés Hirigoyen > > > > Mi respuesta tiene dos partes, la primera es que no se comprende o por lo > menos en mi caso, desde donde viene el problema con el código que publica, > la segunda parte es suponiendo que todo estaría correcto menos el > data.frame, yo crearía un nuevo data.frame solo con las columnas que deseo, > luego uso el código de resumen, y puedo borrar el Segundo data.frame. > > > > Otra forma es tomar cualquier ejemplo publicado o código propio que > funcione y reemplazar los datos, el cometer un error de tipeo es muy fácil > y difícil de encontrar. > > > > Disculpas por errors idiomáticos, esta cosa me está pasando del español al > inglés en forma automática. > > > > Javier Rubén Marcuzzi > > > > *De: *Andres Hirigoyen <andreshirigoyen en gmail.com> > *Enviado: *martes, 12 de septiembre de 2017 15:27 > *Para: *Lista R <r-help-es en r-project.org> > *Asunto: *[R-es] Creación de data frame > > > > Buenos dias, tengo una consulta con la creación de un nuevo data frame. La > > primer columna, que no forma parte del data frame, toma los valores de la > > variable LETRA lo cual no me permite luego seguir haciendo procedimentos ya > > q no ordena. Va ejemplo > > > > Parto de un data frame (llamado resu), con las variables Letra, Suelo y > > ha, quiero hacer uno nuevo que resuma las hectáreas (ha) por Letra. > > > > > > resu<-with(resuu data.frame( , > > Letra=unique(Letra), > > Suelo=unique(Suelo), > > ha= tapply(resulr,Suelo,sum))) > > Resultado: > > > > Letra Suelo ha > > a b 2 145 > > b c 2 456 > > c a 2 60 > > > > > > Esa primer columna debería de estar numerada de forma lógica de 1 a 3 por > > ejemplo. Ya intente cambiando el orden de las variables, Suelo y Letra, > > pero el resultado es el mismo. > > > > Espero haber sido claro, gracias por la ayuda > > > > [[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 > > >-- *Andrés Hirigoyen* * Prof. Ciencias Biológicas* *Ing. Agr. Forestal (MSC) * [[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]]
No acabo de ver el motivo del problema, creo haber entendido que el nombre de las filas esta tomado de la columna letra? No es posible, puesto que tus letras tienen que estar 'repetidas' ya que estas agregando y sumando... He probado esto y ha funcionado ## minireplica de tus datosd <- data.frame(Letra=c('a','b','c','a','b','c','a','b','c'),Suelo=c(2,2,2,3,3,3,2,2,3),result=c(23,15,36,20,2,36,32,25,32)) ## calculamos la tabla de contingencia (los margenes van definidos por el orden de la lista, si quieres cambiar como se agregan, cambia de orden los dos elementos de la lista)tabla <- tapply(d$result,list(d$Letra,d$Suelo),sum, simplify=TRUE)## la damos formato de tabla (trae predefinido formato matriz y necesitamos formato de tabla para expandirla con as.data.frame)class(tabla) <- 'table'## y expandimos (despuestendrias que renombrar las columnas)final <- as.data.frame(tabla) Los identificadores de las columnas no deberian darte guerra asi. Tambien puedes hacerlo con dos lazos, que tambien te evitaria eso que comentas: letra <- NULLSuelo <- NULLha <- NULLfor (i in unique(d$Letra)){ for(j in unique(d$Suelo)){ letra <- c(letra,i) Suelo <- c(Suelo,j) tmp.sum <- sum(d$result[d$Letra==i & d$Suelo==j]) ha <- c(ha,tmp.sum) }}out <- data.frame(letra=letra, Suelo=Suelo, ha=ha) Saludos y espero que te sirva Fer El Viernes 15 de septiembre de 2017 1:44, Javier Nieto <mac_javi en hotmail.com> escribió: Hola prueba: rownames(resu) <- NULL Saludos ________________________________ De: R-help-es <r-help-es-bounces en r-project.org> en nombre de Andres Hirigoyen <andreshirigoyen en gmail.com> Enviado: jueves, 14 de septiembre de 2017 10:13:37 a. m. Para: Javier Marcuzzi CC: Lista R Asunto: Re: [R-es] Creaci?n de data frame Hola Javier, gracias por tu respuesta, explico de nuevo. Luego de varios calculos, llego a un dataframe con varias observaciones, llamado resuu: Letra Suelo result 1 a 2 23 2 b 2 15 3 c 2 36 4 a 3 20 5 b 3 2 6 c 3 36 7 a 2 32 8 b 2 25 9 c 3 32 ... La primer columna que no tiene cabecera o etiqueta, aparece en la consola en color gris y es un identificador de las filas Cuando quiero resumir, usando resu<-with(resuu data.frame( , Letra=unique(Letra), Suelo=unique(Suelo), ha= tapply(resulr,Suelo,sum))) El nuevo dataframe tiene como identificador de filas los valores de la variable LETRAS: Letra Suelo ha a b 2 145 b c 2 456 c a 3 60 Si quiero hacer algo con ese nuevo dataframe, agrupar por la variable Letra, etc. se confunde porque toma como valor de "a", "b" o "c" el identificador y no la variable LETRAS. Mi pregunta es como cambiar el identificado de las filas a num?rico o como evitar q pase lo que explique arriba.. Gracias El 14 de septiembre de 2017, 10:11, Javier Marcuzzi< javier.ruben.marcuzzi en gmail.com> escribi?:> Estimado Andr?s Hirigoyen > > > > Mi respuesta tiene dos partes, la primera es que no se comprende o por lo > menos en mi caso, desde donde viene el problema con el c?digo que publica, > la segunda parte es suponiendo que todo estar?a correcto menos el > data.frame, yo crear?a un nuevo data.frame solo con las columnas que deseo, > luego uso el c?digo de resumen, y puedo borrar el Segundo data.frame. > > > > Otra forma es tomar cualquier ejemplo publicado o c?digo propio que > funcione y reemplazar los datos, el cometer un error de tipeo es muy f?cil > y dif?cil de encontrar. > > > > Disculpas por errors idiom?ticos, esta cosa me est? pasando del espa?ol al > ingl?s en forma autom?tica. > > > > Javier Rub?n Marcuzzi > > > > *De: *Andres Hirigoyen <andreshirigoyen en gmail.com> > *Enviado: *martes, 12 de septiembre de 2017 15:27 > *Para: *Lista R <r-help-es en r-project.org> > *Asunto: *[R-es] Creaci?n de data frame > > > > Buenos dias, tengo una consulta con la creaci?n de un nuevo data frame. La > > primer columna, que no forma parte del data frame, toma los valores de la > > variable LETRA lo cual no me permite luego seguir haciendo procedimentos ya > > q no ordena. Va ejemplo > > > > Parto de un data frame (llamado resu), con las variables Letra, Suelo y > > ha, quiero hacer uno nuevo que resuma las hect?reas (ha) por Letra. > > > > > > resu<-with(resuu data.frame( , > > Letra=unique(Letra), > > Suelo=unique(Suelo), > > ha= tapply(resulr,Suelo,sum))) > > Resultado: > > > > Letra Suelo ha > > a b 2 145 > > b c 2 456 > > c a 2 60 > > > > > > Esa primer columna deber?a de estar numerada de forma l?gica de 1 a 3 por > > ejemplo. Ya intente cambiando el orden de las variables, Suelo y Letra, > > pero el resultado es el mismo. > > > > Espero haber sido claro, gracias por la ayuda > > > > [[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 > > >-- *Andr?s Hirigoyen* * Prof. Ciencias Biol?gicas* *Ing. Agr. Forestal (MSC) * [[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 [[alternative HTML version deleted]]