Re: [R-es] Secuencia fija de números por grupo

2018-07-19 Por tema Marcelino de la Cruz Rot
Hola, suponiendo que tu data.frame se llama "midf" y tu variable 
(factor) se llama "grupo", una posible solución sería esta:


midf$seq<-unlist(sapply(table(midf$grupo), function(x) seq(1,x, by=1)))
midf

Que guardaría la secuencia dentro de midf en una nueva variable llamada 
"seq"



Saludos,

Marcelino

El 19/07/2018 a las 9:15, Rubén Coca escribió:

Hola, a partir de un data frame quiero crear una columna que aplique una
secuencia numérica fija (1 a 12) por cada grupo de una de las variables. Si
el grupo tiene más de 12 elementos, el contador tendría que reiniciarse a 1
en la fila 13, y así sucesivamente.
El resultado deseado sería algo así:

grupo seq
A 1
A 2
A 3
A 4
A 5
A 6
A 7
A 8
A 9
A 10
A 11
A 12
A 1
A 2
B 1
B 2
B 3
B 4
B 5
B 6
C 1
C 2
C 3
C 4
C 5
C 6
C 7
C 8
C 9
C 10

Alguna idea?
Gracias!!

[[alternative HTML version deleted]]

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



--
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España

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


Re: [R-es] Secuencia fija de números por grupo

2018-07-19 Por tema Isidro Hidalgo Arellano
Si están ordenados, una forma podría ser utilizando "table()". Por ejemplo:

datosOrigen = rep(c("A", "B", "C"),c(14, 6, 10))
tabla = table(datosOrigen)

grupo = c()
secuencia = c()
datos = data.frame(grupo = grupo, secuencia = secuencia)
for (i in 1:length(tabla)){
parte = data.frame(grupo = rep(attr(tabla, "dimnames")$datos[i],
tabla[i]), secuencia = rep(c(1:12), length.out = tabla[i]))
datos = rbind(datos, parte)
}

Un saludo

Isidro Hidalgo Arellano
Observatorio del Mercado de Trabajo
Consejería de Economía, Empresas y Empleo
http://www.castillalamancha.es/




-Mensaje original-
De: Isidro Hidalgo Arellano  
Enviado el: jueves, 19 de julio de 2018 9:28
Para: 'r-help-es@r-project.org' 
Asunto: RE: [R-es] Secuencia fija de números por grupo

Hola, Rubén:
¿Los datos de grupo están ordenados, o puedes tenerlos "revueltos"? Quiero
decir con revueltos que primero tengas una "A", luego una "C", luego otra
"A", etc.
Un saludo

Isidro Hidalgo Arellano
Observatorio del Mercado de Trabajo
Consejería de Economía, Empresas y Empleo http://www.castillalamancha.es/


-Mensaje original-
De: R-help-es  En nombre de Rubén Coca
Enviado el: jueves, 19 de julio de 2018 9:16
Para: Lista R 
Asunto: [R-es] Secuencia fija de números por grupo

Hola, a partir de un data frame quiero crear una columna que aplique una
secuencia numérica fija (1 a 12) por cada grupo de una de las variables. Si
el grupo tiene más de 12 elementos, el contador tendría que reiniciarse a 1
en la fila 13, y así sucesivamente.
El resultado deseado sería algo así:

grupo seq
A 1
A 2
A 3
A 4
A 5
A 6
A 7
A 8
A 9
A 10
A 11
A 12
A 1
A 2
B 1
B 2
B 3
B 4
B 5
B 6
C 1
C 2
C 3
C 4
C 5
C 6
C 7
C 8
C 9
C 10

Alguna idea?
Gracias!!

[[alternative HTML version deleted]]

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

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


Re: [R-es] Secuencia fija de números por grupo

2018-07-19 Por tema Isidro Hidalgo Arellano
Hola, Rubén:
¿Los datos de grupo están ordenados, o puedes tenerlos "revueltos"? Quiero
decir con revueltos que primero tengas una "A", luego una "C", luego otra
"A", etc.
Un saludo

Isidro Hidalgo Arellano
Observatorio del Mercado de Trabajo
Consejería de Economía, Empresas y Empleo
http://www.castillalamancha.es/


-Mensaje original-
De: R-help-es  En nombre de Rubén Coca
Enviado el: jueves, 19 de julio de 2018 9:16
Para: Lista R 
Asunto: [R-es] Secuencia fija de números por grupo

Hola, a partir de un data frame quiero crear una columna que aplique una
secuencia numérica fija (1 a 12) por cada grupo de una de las variables. Si
el grupo tiene más de 12 elementos, el contador tendría que reiniciarse a 1
en la fila 13, y así sucesivamente.
El resultado deseado sería algo así:

grupo seq
A 1
A 2
A 3
A 4
A 5
A 6
A 7
A 8
A 9
A 10
A 11
A 12
A 1
A 2
B 1
B 2
B 3
B 4
B 5
B 6
C 1
C 2
C 3
C 4
C 5
C 6
C 7
C 8
C 9
C 10

Alguna idea?
Gracias!!

[[alternative HTML version deleted]]

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

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


Re: [R-es] Legendas en una gráfica de ggplot2

2018-07-19 Por tema José Luis Cañadas
Muy bueno Carlos. Gracias por compartir

El mié., 18 jul. 2018 23:50, Carlos Ortega 
escribió:

> Hola,
>
> Nos prodigamos poco en la lista en recomendar el uso de "addins", que
> permiten ayudar en múltiples cosas con un par de clicks.
> Con este puedes mejorar tu gráfico "ggplot" en gran medida (leyendas
> incluidas):
>
> https://github.com/calligross/ggthemeassist
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
> El 18 de julio de 2018, 20:29, Sebastián Rangel 
> escribió:
>
> > ¡Gracias!  Espectacular. Me ha servido mucho.
> >
> > El mié., 18 de jul. de 2018 1:15 PM, Víctor Granda García <
> > victorgrandagar...@gmail.com> escribió:
> >
> > > Hola Sebastián.
> > >
> > > Entiendo que tratas de que aparezca una leyenda con el tipo de curva
> > > (l,o,u,i). Si quieres aprovechar las ventajas de ggplot (como las
> > leyendas
> > > automáticas) normalmente tienes que asignar linetype a una variable, y
> > para
> > > eso tienes que modificar un poco tus datos. Los has creado en formato
> > > "wide" (ancho), donde tienes la columna t y una columna para cada
> curva.
> > > Pero para lo que quieres hacer en ggplot, necesitas un formato "long"
> > > (largo), donde tienes una columna con el tipo de curva (l,o,u,i) otra
> > > columna con los valores para cada curva y la columna t, solo que
> repetida
> > > para cada curva.
> > >
> > > Con este código puedes cambiar los datos y hacer la gráfica como
> quieres:
> > >
> > > library(ggplot2)
> > >
> > > t=seq (-4, 4, by=0.01)
> > >
> > >  Con b=-2
> > >
> > > l=exp(t+2)/(1+(exp(t+2)))
> > >
> > > ##con b igual a -1
> > >
> > > o=exp(t+1)/(1+(exp(t+1)))
> > >
> > > ### Con b igual a 0.7
> > >
> > > i=exp(t-0.7)/(1+(exp(t-0.7)))
> > >
> > > ### Con b igual a 2
> > >
> > > u=exp(t-2)/(1+(exp(t-2)))
> > >
> > > unir los datos
> > > b=c(0.3,2,-1,-2)
> > >
> > > datos <- data.frame(
> > >   t = t,
> > >   l = l,
> > >   o = o,
> > >   i = i,
> > >   u = u
> > > )
> > >
> > > # ahora usamos gather, del paquete tidyr, porque nos permite pasar del
> > > formato
> > > # "wide" a "long"
> > > library(tidyr)
> > > # install.packages('tidyr')
> > > datos_long <- gather(datos, Curva, Valor, 2:5)
> > > datos_long
> > >
> > > ###Graficos
> > >
> > > ggplot(datos_long, aes(x = t, y = Valor, linetype = Curva)) +
> > >   geom_line(color="gray48", size=1.2)+
> > >   labs(x = expression(paste(theta)), y="Probabilidad")+
> > >   theme(axis.text=element_text(size=14, face="bold"),
> > > axis.title=element_text(size=14))
> > >
> > >
> > > Como ves, datos_long ahora si que permite que asignes linetype a una
> > > variable (Curva) y automáticamente te dibuja diferentes tipos de linea
> > para
> > > cada curva y te coloca una leyenda.
> > >
> > > Espero que te sirva, un saludo!!
> > >
> > > On Wed, 18 Jul 2018 at 19:50 Sebastián Rangel 
> > > wrote:
> > >
> > >> Buenas tardes, estoy haciendo una gráfica de múltiples lineas pero no
> he
> > >> podido generar las legendas. Alguno de ustedes me podría colaborar.
> > >>
> > >> library(ggplot2)
> > >>
> > >>  Con b=-2
> > >> t=seq (-4, 4, by=0.01)
> > >> l=exp(t+2)/(1+(exp(t+2)))
> > >>
> > >> ##con b igual a -1
> > >>
> > >> t=seq (-4, 4, by=0.01)
> > >> o=exp(t+1)/(1+(exp(t+1)))
> > >>
> > >> ### Con b igual a 0.7
> > >>
> > >> t=seq (-4, 4, by=0.01)
> > >> i=exp(t-0.7)/(1+(exp(t-0.7)))
> > >>
> > >> ### Con b igual a 2
> > >>
> > >> t=seq (-4, 4, by=0.01)
> > >> u=exp(t-2)/(1+(exp(t-2)))
> > >>
> > >> unir los datos
> > >> b=c(0.3,2,-1,-2)
> > >> datos=cbind(l,o,i,u)
> > >> datos=data.frame(datos)
> > >>
> > >> ###Graficos
> > >>
> > >> ggplot(  )+
> > >>   geom_line(aes(y = i, x=t), color="gray48", size=1.2,
> > linetype="dashed")
> > >> +
> > >>   geom_line(aes(y = u, x=t), color = "gray48",
> > >> size=1.2,linetype="twodash")+
> > >>   geom_line(aes(y = o,x=t),  color = "gray48",
> > >> size=1.2,linetype="longdash") +
> > >>   geom_line(aes(y = l,x=t),  color="gray48",
> size=1.2,linetype="solid")+
> > >>  labs(x = expression(paste(theta)), y="Probabilidad")+
> > >> theme(axis.text=element_text(size=14, face="bold"),
> > >>   axis.title=element_text(size=14))
> > >>
> > >> Saludos,
> > >>
> > >> Sebastián Rangel Quiñonez
> > >>
> > >> [[alternative HTML version deleted]]
> > >>
> > >> ___
> > >> R-help-es mailing list
> > >> R-help-es@r-project.org
> > >> https://stat.ethz.ch/mailman/listinfo/r-help-es
> > >>
> > > --
> > > *Víctor Granda García*
> > > Data Technician
> > >
> > >
> > > v.gra...@creaf.uab.cat
> > > Tel. +34 93 581 33 53
> > >
> > >
> > > Campus UAB. Edifici C. 08193 Bellaterra (Barcelona) | *www.creaf.cat*
> > > 
> > >
> > > Abans d'imprimir aquest missatge electrònic penseu en el medi ambient.
> > >
> > >
> > >
> >
> > [[alternative HTML version deleted]]
> >
> > ___
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman

[R-es] Secuencia fija de números por grupo

2018-07-19 Por tema Rubén Coca
Hola, a partir de un data frame quiero crear una columna que aplique una
secuencia numérica fija (1 a 12) por cada grupo de una de las variables. Si
el grupo tiene más de 12 elementos, el contador tendría que reiniciarse a 1
en la fila 13, y así sucesivamente.
El resultado deseado sería algo así:

grupo seq
A 1
A 2
A 3
A 4
A 5
A 6
A 7
A 8
A 9
A 10
A 11
A 12
A 1
A 2
B 1
B 2
B 3
B 4
B 5
B 6
C 1
C 2
C 3
C 4
C 5
C 6
C 7
C 8
C 9
C 10

Alguna idea?
Gracias!!

[[alternative HTML version deleted]]

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