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]]