[R-es] help:ELIMINAR FILAS DUPLICADAS DENTRO DE UNA MATRIZ

2015-03-18 Por tema Javier Villacampa González
Lo que quires hacer es algo así

d - rbind( mtcars , mtcars[1:3,] )
duplicated(d)

d - d[ !duplicated(d) ,]

--

[[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-es] ELIMINAR FILAS DUPLICADAS DENTRO DE UNA MATRIZ

2015-03-18 Por tema Javier Villacampa González
Lo que quires hacer es algo así

d - rbind( mtcars , mtcars[1:3,] )
duplicated(d)

d - d[ !duplicated(d) ,]


--

[[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-es] Cursos de Estadística Aplicada con R

2015-03-18 Por tema Jesus Herranz
Estimado/a amigo/a:

 

La Unidad de Bioestadística del Instituto IMDEA Alimentación y la Facultad
de Ciencias de la Universidad Autónoma de Madrid (UAM) han organizado
conjuntamente un programa de formación continua en “Estadística Aplicada con
R” que se va a impartir en Madrid en 2015 de forma presencial. El programa
está compuesto por 7 módulos que pueden ser cursados de forma independiente:

 


Módulos

Fechas 2015


1.  Introducción a R

24, 25 Septiembre


2.  Métodos de Regresión con R

15, 16 Octubre


3.  Métodos de Regresión Avanzados para la Investigación en Ciencias
Naturales con R

28, 29, 30 Octubre


4.  Estadística Aplicada a la Investigación Biomédica con R

11, 12, 13 Noviembre


5.  Modelos Mixtos / Jerárquicos / Multinivel con R

18, 19, 20 Noviembre


6.  Estadística Multivariante con R

26 y 27 Noviembre


7.  Técnicas Estadísticas de Data Mining con R

14, 15, 16, 17 Diciembre

 

Los módulos 4 y 7 se impartirán en el Instituto IMDEA Alimentación, y el
resto en la Facultad de Ciencias de la UAM.

 

En este link, podrás encontrar los detalles de la programación de todos los
módulos:

 

http://www.alimentacion.imdea.org/sites/default/files/Formacion/Programa_Cur
so_Estad%C3%ADstica_Aplicada_con_R_2015.pdf

 

 

 

Si quieres obtener más información, lo puedes hacer en las siguientes
páginas, donde también podrás formalizar la matrícula:

 

https://www.uam.es/ss/Satellite/es/1242652866332/1242685761521/cursocortadur
acion/cursoCortaDuracion/Estadistica_Aplicada_con_R.htm

 

http://www.alimentacion.imdea.org/unidad-de-formacion



Te rogamos que difundas la información a quien creas oportuno, y que la
incorpores en las agendas y eventos de la página web de tu institución. 

 

Recibe un cordial saludo

 

Jesús Herranz

 

 

Firma Jesús Herranz IMDEA

 

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


[R-es] Nueva publicación en blog en r-es.org

2015-03-18 Por tema web
Nueva publicación en blog: Cursos, Cursos de Estadística Aplicada con R, por 
jesus.herranz en 18/03/15 15:39h

Ver el blog en:
http://r-es.org/tiki-view_blog_post.php?blogId=4postId=97

Si no desea recibir estas notificaciones siga este enlace:
http://r-es.org/tiki-user_watches.php?id=49


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


[R-es] una orientación...

2015-03-18 Por tema heber sarmiento via R-help-es
un cordial y amable saludo,
Soy un poco nuevo en esto de R, aunque debo decir que me ha parecido 
excepcional.quisiera saber si alguien me puede dar una mano con los siguientes 
dos problemas:
1) Problema 1. Estoy haciendo un script y entre muchas otras cosas que quiero 
es que me gráfique la distribución normal sombreando el área de la probabilidad 
acumulada, por lo que he leído esto implica el uso de función polygon y ahí 
esta mi problema, no entiendo como funciona, se que debe ser con otra función 
gráfica pero hasta ahí, o aparece nada especifico en los tutoriales que he 
leído, agradecería un ejemplo al respecto y algún comentario que me ayude.
2) Problema 2: En el escript que he comentado quiero que salgan al momento de 
ser cargado algunas información de las funciones que tiene, su sintaxis y 
demás, al usar print(blablab...) sale solo una linea, yo quisiera escribir un 
parrafo de texto y que al cargar este aparezca; agradezco cualquier información.
Heber

[[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-es] una orientación sobre gráficas

2015-03-18 Por tema heber sarmiento via R-help-es
un cordial y amable saludo,
Soy un poco nuevo en esto de R, aunque debo decir que me ha parecido 
excepcional.quisiera saber si alguien me puede dar una mano con los siguientes 
dos problemas:
1) Problema 1. Estoy haciendo un script y entre muchas otras cosas que quiero 
es que me gráfique la distribución normal sombreando el área de la probabilidad 
acumulada, por lo que he leído esto implica el uso de función polygon y ahí 
esta mi problema, no entiendo como funciona, se que debe ser con otra función 
gráfica pero hasta ahí, o aparece nada especifico en los tutoriales que he 
leído, agradecería un ejemplo al respecto y algún comentario que me ayude.
2) Problema 2: En el escript que he comentado quiero que salgan al momento de 
ser cargado algunas información de las funciones que tiene, su sintaxis y 
demás, al usar print(blablab...) sale solo una linea, yo quisiera escribir un 
parrafo de texto y que al cargar este aparezca; agradezco cualquier información.
Heber


[[alternative HTML version deleted]]

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


Re: [R-es] Familia *pply

2015-03-18 Por tema Fernando Macedo
Hola Jorge, muchas gracias por tu pronta respuesta, no me di cuenta que 
el formateo podr�a causar problemas, env�o de nuevo el c�digo sin formatos.
La idea b�sica es para un set de n�meros de columnas (desordenados) y un 
set de numeros de fila el loop lo que hace es ir a la fila y columna 
correspondiente de data, tomar el valor y luego hacer la media sobre esos.



data=matrix(rnorm(100*20),20,100)
col=sample(1:100,100)

t1=Sys.time()
medias=replicate(1000,{
   sel=sample(1:20,10)
   pareja=sample(sel,100,replace = T)
   ta=Sys.time()
   recep=NULL
   for(i in 1:100){
 n=col[i]
 m=pareja[i]
 c=data[m,n]
 recep=c(recep,c)
   }
   tb=Sys.time()
   media=mean(recep)
   tt=tb-ta
   c(media,tt)
},simplify=T)

t2=Sys.time()
diftime=(t2-t1)[[1]]

sum(medias[2,])/diftime



Fernando Macedo

El 18/03/15 a las 21:06, Jorge I Velez escribi�:
 Hola Fernando,

 No puedo ver las negritas, pero intuyo que lo que quieres es calcular 
 la media por columnas?  Si es asi, hay dos maneras:

 1. Usa colMeans(x), donde x es tu matriz de datos
 2. Usa apply(x, 2, mean) donde x es tu matriz de datos

 Existe una tercera pero menos conocida posibilidad que es usando el 
 paquete matrixStats.  Esta implementado en C en su mayoria y, de 
 acuerdo con el autor, es mucho mas rapido que la familia *apply.  En 
 http://cran.r-project.org/web/packages/matrixStats/vignettes/matrixStats-methods.html
  
 puedes encontrar mas informacion.

 Saludos cordiales,
 Jorge.-



 2015-03-19 11:01 GMT+11:00 Fernando Macedo ferm...@gmail.com 
 mailto:ferm...@gmail.com:

 Buenas a todos. Desde hace un tiempo estoy tratando de aplicar las
 funciones de la familia *pply en todo lo que puedo, pero todav�a no es
 algo que me surja tan r�pidamente o naturalmente al momento de los
 loops
 como usar for().
 Conozco las ventajas de usar estas funciones y por eso mi intento de
 hacerme de ellas.

 Por ejemplo en este problema:

 data=matrix(rnorm(100*20),20,100)
 col=sample(1:100,100)

 t1=Sys.time()

 medias=replicate(1000,{
sel=sample(1:20,10)
pareja=sample(sel,100,replace = T)
ta=Sys.time()
 *recep=NULL**
 **  for(i in 1:100){**
 **n=col[i]**
 **m=pareja[i]**
 **c=data[m,n]**
 **recep=c(recep,c)**
 **  }**
 *  tb=Sys.time()
media=mean(recep)
tt=tb-ta
c(media,tt)
 })

 t2=Sys.time()

 diftime=(t2-t1)[[1]]

 sum(medias[2,])/diftime


 la parte que est� en negrita (si us� bien los Sys.time()) me
 representa
 (hice varias pruebas) aprox un 60% del tiempo total empleado.

 Mi pregunta es, para este ejemplo �c�mo plantear�an una soluci�n
 usando
 funciones *pply?
 Y luego ver cuanto aumenta en el rendimiento del uso del tiempo.

 De paso, la salida que obtengo es una matriz de 2 por 1000, cuando
 ser�a
 m�s interesante una matriz de 1000 por 2. Si se usa simplify = F como
 argumento de replicate() resulta en una lista. �Existe alg�n argumento
 que directamente obtenga una matriz de 1000 por 2? (Esto �ltimo
 pensando
 en de repente 10 o 100 de repeticiones y salidas m�s
 complejas).


 Saludos!

 --
 Fernando Macedo


 [[alternative HTML version deleted]]

 ___
 R-help-es mailing list
 R-help-es@r-project.org mailto: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


Re: [R-es] Familia *pply

2015-03-18 Por tema Carlos Ortega
Hola,

Una forma de hacerlo es así (destaco en negrita los cambios).
De todas formas, ya te adelanto que no es un caso en el que aplicar, en
este caso mapply(), mejore los tiempos frente a la solución basada en un
bucle.

#-
t1 - Sys.time()

*myfun - function(x,y) { data[x,y] }*

medias - replicate(1000,{
  sel - sample(1:20,10)
  pareja - sample(sel,100,replace = T)
  ta - Sys.time()


*#cambioresnew - mapply(myfun, pareja, col) #cambio *
  tb - Sys.time()
  media - mean(resnew)
  tt - tb-ta
  c(media,tt)
})

t2 - Sys.time()

diftime=(t2-t1)[[1]]
diftime

sum(medias[2,])/diftime

#-



Saludos,
Carlos Ortega
www.qualiytexcellence.es

El 19 de marzo de 2015, 1:14, Fernando Macedo ferm...@gmail.com escribió:

 Hola Jorge, muchas gracias por tu pronta respuesta, no me di cuenta que
 el formateo podría causar problemas, envío de nuevo el código sin formatos.
 La idea básica es para un set de números de columnas (desordenados) y un
 set de numeros de fila el loop lo que hace es ir a la fila y columna
 correspondiente de data, tomar el valor y luego hacer la media sobre esos.



 data=matrix(rnorm(100*20),20,100)
 col=sample(1:100,100)

 t1=Sys.time()
 medias=replicate(1000,{
sel=sample(1:20,10)
pareja=sample(sel,100,replace = T)
ta=Sys.time()
recep=NULL
for(i in 1:100){
  n=col[i]
  m=pareja[i]
  c=data[m,n]
  recep=c(recep,c)
}
tb=Sys.time()
media=mean(recep)
tt=tb-ta
c(media,tt)
 },simplify=T)

 t2=Sys.time()
 diftime=(t2-t1)[[1]]

 sum(medias[2,])/diftime



 Fernando Macedo

 El 18/03/15 a las 21:06, Jorge I Velez escribió:
  Hola Fernando,
 
  No puedo ver las negritas, pero intuyo que lo que quieres es calcular
  la media por columnas?  Si es asi, hay dos maneras:
 
  1. Usa colMeans(x), donde x es tu matriz de datos
  2. Usa apply(x, 2, mean) donde x es tu matriz de datos
 
  Existe una tercera pero menos conocida posibilidad que es usando el
  paquete matrixStats.  Esta implementado en C en su mayoria y, de
  acuerdo con el autor, es mucho mas rapido que la familia *apply.  En
 
 http://cran.r-project.org/web/packages/matrixStats/vignettes/matrixStats-methods.html
  puedes encontrar mas informacion.
 
  Saludos cordiales,
  Jorge.-
 
 
 
  2015-03-19 11:01 GMT+11:00 Fernando Macedo ferm...@gmail.com
  mailto:ferm...@gmail.com:
 
  Buenas a todos. Desde hace un tiempo estoy tratando de aplicar las
  funciones de la familia *pply en todo lo que puedo, pero todavía no
 es
  algo que me surja tan rápidamente o naturalmente al momento de los
  loops
  como usar for().
  Conozco las ventajas de usar estas funciones y por eso mi intento de
  hacerme de ellas.
 
  Por ejemplo en este problema:
 
  data=matrix(rnorm(100*20),20,100)
  col=sample(1:100,100)
 
  t1=Sys.time()
 
  medias=replicate(1000,{
 sel=sample(1:20,10)
 pareja=sample(sel,100,replace = T)
 ta=Sys.time()
  *recep=NULL**
  **  for(i in 1:100){**
  **n=col[i]**
  **m=pareja[i]**
  **c=data[m,n]**
  **recep=c(recep,c)**
  **  }**
  *  tb=Sys.time()
 media=mean(recep)
 tt=tb-ta
 c(media,tt)
  })
 
  t2=Sys.time()
 
  diftime=(t2-t1)[[1]]
 
  sum(medias[2,])/diftime
 
 
  la parte que está en negrita (si usé bien los Sys.time()) me
  representa
  (hice varias pruebas) aprox un 60% del tiempo total empleado.
 
  Mi pregunta es, para este ejemplo ¿cómo plantearían una solución
  usando
  funciones *pply?
  Y luego ver cuanto aumenta en el rendimiento del uso del tiempo.
 
  De paso, la salida que obtengo es una matriz de 2 por 1000, cuando
  sería
  más interesante una matriz de 1000 por 2. Si se usa simplify = F como
  argumento de replicate() resulta en una lista. ¿Existe algún
 argumento
  que directamente obtenga una matriz de 1000 por 2? (Esto último
  pensando
  en de repente 10 o 100 de repeticiones y salidas más
  complejas).
 
 
  Saludos!
 
  --
  Fernando Macedo
 
 
  [[alternative HTML version deleted]]
 
  ___
  R-help-es mailing list
  R-help-es@r-project.org mailto: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

[[alternative HTML version deleted]]

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


Re: [R-es] Familia *pply

2015-03-18 Por tema Carlos J. Gil Bellosta
Hola, ¿qué tal?

Puedes hacer

data - matrix(rnorm(100 *20), 100, 20)

medias - replicate(1000,{
  sel - sample(1:20,10)
  tmp - data[cbind(sel, sample(sel,100,replace = T))]
  mean(tmp)
})

Mira el párrafo de ?] que comienza diciendo A third form of indexing...

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com


El día 19 de marzo de 2015, 1:01, Fernando Macedo ferm...@gmail.com escribió:
 Buenas a todos. Desde hace un tiempo estoy tratando de aplicar las
 funciones de la familia *pply en todo lo que puedo, pero todavía no es
 algo que me surja tan rápidamente o naturalmente al momento de los loops
 como usar for().
 Conozco las ventajas de usar estas funciones y por eso mi intento de
 hacerme de ellas.

 Por ejemplo en este problema:

 data=matrix(rnorm(100*20),20,100)
 col=sample(1:100,100)

 t1=Sys.time()

 medias=replicate(1000,{
sel=sample(1:20,10)
pareja=sample(sel,100,replace = T)
ta=Sys.time()
 *recep=NULL**
 **  for(i in 1:100){**
 **n=col[i]**
 **m=pareja[i]**
 **c=data[m,n]**
 **recep=c(recep,c)**
 **  }**
 *  tb=Sys.time()
media=mean(recep)
tt=tb-ta
c(media,tt)
 })

 t2=Sys.time()

 diftime=(t2-t1)[[1]]

 sum(medias[2,])/diftime


 la parte que está en negrita (si usé bien los Sys.time()) me representa
 (hice varias pruebas) aprox un 60% del tiempo total empleado.

 Mi pregunta es, para este ejemplo ¿cómo plantearían una solución usando
 funciones *pply?
 Y luego ver cuanto aumenta en el rendimiento del uso del tiempo.

 De paso, la salida que obtengo es una matriz de 2 por 1000, cuando sería
 más interesante una matriz de 1000 por 2. Si se usa simplify = F como
 argumento de replicate() resulta en una lista. ¿Existe algún argumento
 que directamente obtenga una matriz de 1000 por 2? (Esto último pensando
 en de repente 10 o 100 de repeticiones y salidas más complejas).


 Saludos!

 --
 Fernando Macedo


 [[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] Familia *pply

2015-03-18 Por tema Jorge I Velez
Hola Fernando,

No puedo ver las negritas, pero intuyo que lo que quieres es calcular la
media por columnas?  Si es asi, hay dos maneras:

1.  Usa colMeans(x), donde x es tu matriz de datos
2.  Usa apply(x, 2, mean) donde x es tu matriz de datos

Existe una tercera pero menos conocida posibilidad que es usando el paquete
matrixStats.  Esta implementado en C en su mayoria y, de acuerdo con el
autor, es mucho mas rapido que la familia *apply.  En
http://cran.r-project.org/web/packages/matrixStats/vignettes/matrixStats-methods.html
puedes encontrar mas informacion.

Saludos cordiales,
Jorge.-



2015-03-19 11:01 GMT+11:00 Fernando Macedo ferm...@gmail.com:

 Buenas a todos. Desde hace un tiempo estoy tratando de aplicar las
 funciones de la familia *pply en todo lo que puedo, pero todav�a no es
 algo que me surja tan r�pidamente o naturalmente al momento de los loops
 como usar for().
 Conozco las ventajas de usar estas funciones y por eso mi intento de
 hacerme de ellas.

 Por ejemplo en este problema:

 data=matrix(rnorm(100*20),20,100)
 col=sample(1:100,100)

 t1=Sys.time()

 medias=replicate(1000,{
sel=sample(1:20,10)
pareja=sample(sel,100,replace = T)
ta=Sys.time()
 *recep=NULL**
 **  for(i in 1:100){**
 **n=col[i]**
 **m=pareja[i]**
 **c=data[m,n]**
 **recep=c(recep,c)**
 **  }**
 *  tb=Sys.time()
media=mean(recep)
tt=tb-ta
c(media,tt)
 })

 t2=Sys.time()

 diftime=(t2-t1)[[1]]

 sum(medias[2,])/diftime


 la parte que est� en negrita (si us� bien los Sys.time()) me representa
 (hice varias pruebas) aprox un 60% del tiempo total empleado.

 Mi pregunta es, para este ejemplo �c�mo plantear�an una soluci�n usando
 funciones *pply?
 Y luego ver cuanto aumenta en el rendimiento del uso del tiempo.

 De paso, la salida que obtengo es una matriz de 2 por 1000, cuando ser�a
 m�s interesante una matriz de 1000 por 2. Si se usa simplify = F como
 argumento de replicate() resulta en una lista. �Existe alg�n argumento
 que directamente obtenga una matriz de 1000 por 2? (Esto �ltimo pensando
 en de repente 10 o 100 de repeticiones y salidas m�s complejas).


 Saludos!

 --
 Fernando Macedo


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


Re: [R-es] una orientación sobre gráficas

2015-03-18 Por tema Carlos Ortega
Hola,


   - Del primer problema, tienes ejemplos de justamente lo que quieres aquí:

http://www.fernandohrosa.com.br/en/P/shaded_areas_in_r/?utm_source=rssutm_medium=rssutm_campaign=shaded_areas_in_r

http://www.statmethods.net/advgraphs/probability.html

   - Y del segundo problema, mira la función cat().


Saludos,

Carlos Ortega

www.qualityexcellence.es





El 18 de marzo de 2015, 21:50, heber sarmiento via R-help-es 
r-help-es@r-project.org escribió:

 un cordial y amable saludo,
 Soy un poco nuevo en esto de R, aunque debo decir que me ha parecido
 excepcional.quisiera saber si alguien me puede dar una mano con los
 siguientes dos problemas:
 1) Problema 1. Estoy haciendo un script y entre muchas otras cosas que
 quiero es que me gráfique la distribución normal sombreando el área de la
 probabilidad acumulada, por lo que he leído esto implica el uso de función
 polygon y ahí esta mi problema, no entiendo como funciona, se que debe
 ser con otra función gráfica pero hasta ahí, o aparece nada especifico en
 los tutoriales que he leído, agradecería un ejemplo al respecto y algún
 comentario que me ayude.
 2) Problema 2: En el escript que he comentado quiero que salgan al momento
 de ser cargado algunas información de las funciones que tiene, su sintaxis
 y demás, al usar print(blablab...) sale solo una linea, yo quisiera
 escribir un parrafo de texto y que al cargar este aparezca; agradezco
 cualquier información.
 Heber


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

[[alternative HTML version deleted]]

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