Re: [R-es] Medidas Repetidas

2017-10-03 Por tema Olivier Nuñez
Marcelo, 

para especificar el tipo de heteroscedasticidad, deberias utilizar el argumento 
weights de la función lme (en vez de "correlation"). 
Podria ser algo del tipo: 

medidasrep<-lme(Cria_ab~Cria_ab0+ Trat+Dia+Trat*Dia,random=list(ncol= 
pdIdent(~1)),weights= varIdent(form=~Dia), ...) 

que permite que la varianza intra varie con el dia. 
Un saludo. Olivier 


De: "marcelo rodriguez" <rodriguezmarcelogas...@gmail.com> 
Para: "Olivier Nuñez" <onu...@unex.es> 
Enviados: Lunes, 2 de Octubre 2017 14:50:05 
Asunto: Re: [R-es] Medidas Repetidas 

Hola Olivier!! 
Muchas gracias por tu respuesta. Estuve probando con el siguiente Scrpit: 



medidasrep<-lme(Cria_ab~Cria_ab0+ Trat+Dia+Trat*Dia,random=list(ncol= 
pdIdent(~1)),correlation=corAR1(form=~1|ncol),method="REML",na.action=na.omit,data=medidas,keep.data=FALSE)
 




Pero necesitaria poder modelar la heterogeneidad de varianzas ya que con la 
autoregresiva de orden 1 no puedo. Si podes darme una mano con como indicarle 
una no estructurada o alguna otra forma de modelar la falta de 
homocedasticidad, te lo agradeceria. 

Desde ya muchas gracias!! 

Saludos! 

El 29 de septiembre de 2017, 5:30, Olivier Nuñez < onu...@unex.es > escribió: 


Marcelo, 

si "y" es la respuesta, "t" el tratamiento y "id" el indice del insecto en tu 
base de datos "Insectos". 
Un modelo que toma en cuenta la estructura de tus datos es puede escribir: 

modelo=lme(y~t, data = Insectos, random = ~ id) 

Un saludo. Olivier 



- Mensaje original - 
De: "marcelo rodriguez" < rodriguezmarcelogas...@gmail.com > 
Para: r-help-es@r-project.org 
Enviados: Lunes, 25 de Septiembre 2017 19:25:05 
Asunto: [R-es] Medidas Repetidas 

Buenos días a todos! 
Quisiera saber si me pueden ayudar con un Script. Necesito hacer un ANOVA 
para medidas repetidas. Sé que el modelo es el *lme,* pero no se indicarle 
las medidas repetidas. 
El conjunto de datos tiene como variable respuesta volumen ingresado y como 
factores tiempo y tratamientos. El tiempo se midió a las 2,4,6 y 8 min para 
los distintos tratamientos, son medidas repetidas porque se observó en los 
distintos tiempos el mismo insecto. 
Espero que se haya entendido lo que quiero realizar y que me puedan ayudar 
con el Script para poder trabajarlo en R. 
Muchas 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 





[[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] Unir municipios

2017-05-26 Por tema Olivier Nuñez

Yo utilizo la función unionSpatialPolygons del paquete maptools.
Un saludo. Olivier 

- Mensaje original -
De: "Isidro Hidalgo Arellano" 
Para: "Lista R" 
Enviados: Viernes, 26 de Mayo 2017 9:26:33
Asunto: [R-es] Unir municipios

�Existe alguna funci�n en el paquete "sp" para crear un mapa de comarcas a
partir de uno municipal? El "shp" de los municipios lo tengo� necesito crear
el "shape" comarcal�

L�gicamente tengo un data.frame con la variable "comarca"�

Normalmente en google suelo encontrar estas cosas, pero en este caso estoy
inusualmente muy perdido�

Gracias de antemano.

 

Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejer�a de Econom�a, Empresas y Empleo

  http://www.castillalamancha.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

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

Re: [R-es] Suavizado espacial por adyacencia

2017-04-07 Por tema Olivier Nuñez
El paquete R-INLA es un muy buena opción para este tipo de suavizado.

http://www.r-inla.org/download

Implementa entre otros modelos, el de Besag-York-Mollie.
Un saludo. Olivier



- Mensaje original -
De: "Ra�l Vaquerizo" 
Para: R-help-es@r-project.org
Enviados: Jueves, 6 de Abril 2017 12:59:52
Asunto: [R-es] Suavizado espacial por adyacencia

Hola,

¿Conocéis algún paquete de R (que no sea raster) que permita hacer
suavizados espaciales por adyacencia?

Dispongo de un modelo que distribuye de forma irregular los residuos en
base a una distribución geográficas y me gustaría que aquellas zonas donde
no dispongo información "se contagien" de las zonas adyacentes. Es
habitual emplear suavizados "bayesianos" por adyacencia.

Siempre he utilizado software comercial para la realización de esta tarea
y ahora quiero empezar a usar R y tengo problemas para realizar el
suavizado, no sé si hay algún paquete o directamente ponerme a programar
este suavizado.

A ver si me podéis dar luz. Gracias.


Raúl Vaquerizo Romero
www.analisisydecision.es

___
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] Etiquetas en mapas geográficos con ggplot 2 en R

2016-11-25 Por tema Olivier Nuñez
Prueba la función  geom_text()

Olivier 
- Mensaje original -
De: Guillermo Vinue 
Para: nayla 9 
CC: R-help-es@r-project.org
Enviado: Fri, 25 Nov 2016 09:11:42 +0100 (CET)
Asunto: Re: [R-es]  Etiquetas en mapas geográficos con ggplot   2 en R

Hola Nayla,

Creo que la función grid.text del paquete grid te puede servir.

Saludos,

Guillermo

> Hola,
> 
> 
> No he logrado encontrar si se pueden poner etiquetas a los mapas que se hacen 
> con ggplot2. Es decir, me gustar�a poner el nombre de los estados de un pa�s 
> as� como un n�mero de referencia de la información que se está reflejando en 
> el mapa.
> 
> 
> Alguien podr�a asesorarme por favor?
> 
> 
> Se los agradecer�a mucho.
> 
> 
> Nayla
> 
>   [[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] Dos pequeños códigos casi idénticos y sólo funciona el primero

2016-11-25 Por tema Olivier Nuñez
Creo que el "by" sobra, o me perdí algo?

DT.new=DT[!(envio=="TRUE" & coche=="B"),]
DT.new[(envio=="FALSE" & coche=="B"),coche:="A"]
DT.new
   caso empresa coche envio
1:1  E1 A  TRUE
2:1  E1 U  TRUE
3:2  E2 W FALSE
4:2  E2 A FALSE


Un saludo. Olivier

- Mensaje original -
De: "Carlos J. Gil Bellosta" 
Para: "Francisco Javier" 
CC: r-help-es@r-project.org
Enviados: Jueves, 24 de Noviembre 2016 16:44:16
Asunto: Re: [R-es]  Dos pequeños códigos casi idénticos y sólo funciona el 
primero

Hola, ¿qué tal?

¿Has pensado en la posibilidad de que tu código (el que funciona) funcione
solo "de casualidad" y porque tus datos son así y no de otra manera? Tengo
la sensación de que sí.

La lógica es endiablada, y creo que se entiende mejor (y obtienes el mismo
resultado) si haces:

DT[, all.true := all(envio == "TRUE"), by = list(caso, empresa)]
DT <- DT[!(all.true & coche == "B"),]
DT[, all.true := NULL]
DT$coche[DT$coche == "B"] <- "A"
DT

Un saludo,

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

El 24 de noviembre de 2016, 16:21, Francisco Javier 
escribió:

> Buenas tardes a todos,
>
> He adaptado una pregunta realizada en otro foro respecto de un caso que me
> interesa resolver. Sea el data.table:
>
> DT <- data.table(caso = rep(1:2, c(3, 2)),  empresa = factor(rep(c("E1",
> "E2"), c(3, 2))),
>   coche = factor(c('A', 'B', 'U', 'W', 'B')),  envio = factor(rep(c(T, F),
> c(3, 2
>
>
> En el siguiente codigo, segun la dupla (caso, empresa), se eliminan las
> filas coche="B" si envio=T, y se cambia "B" por "A" si envio = F.
>
> DTnew <- DT[,##  CODIGO QUE SÍ FUNCIONA
>if (all(envio == T))  list(coche = coche[which(coche != "B")])
>else  list(coche),
> by = list(caso, empresa)][, coche :=  as.factor(ifelse(coche == "B", "A",
> as.character(coche))) ]
>
> caso   empresa coche
> 1:   1  E1A
> 2:   1  E1U
> 3:   2  E2   W
> 4:   2  E2A
>
>
> Sin embargo, el siguiente código (casi identico) NO funciona:
>
> DTnew <- DT[,
>if (all(envio == T))  list(coche = coche[which(coche != "B")])
>else  list(coche = as.factor(ifelse(coche == "B", "A",
> as.character(coche,
> by = list(caso, empresa)]
>
> caso   empresa coche
> 1:   1  E1A
> 2:   1  E1U
> 3:   2  E2B
> 4:   2  E2A
>
>
> ¿Alguién podría decirme como modificarlo para que sí funcione? Muchas
> gracias por cualquier ayuda.
>
> [[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

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


Re: [R-es] Modelo mixto en R

2016-11-02 Por tema Olivier Nuñez
Bueno, 

dando por hecho lo anterior, tu modelo me parece corecto para contestar a la 
pregunta que planteas. 
Sin embargo, es posible que experimentes problemas de convergencia con estos 
datos. 
Te aconsejo tipificar la variable "colecta": 

datos$colecta=scale(datos$colecta) 

Un saludo. Olivier 


De: "Manuel Spínola" <mspinol...@gmail.com> 
Para: "Olivier Nuñez" <onu...@unex.es> 
CC: "R" <r-help-es@r-project.org> 
Enviados: Martes, 1 de Noviembre 2016 13:53:01 
Asunto: Re: [R-es] Modelo mixto en R 

Hola Olivier, 
Adjunto los datos. 

Manuel 

El 31 de octubre de 2016, 3:29, Olivier Nuñez < onu...@unex.es > escribió: 


Manuel, 

no estoy seguro de entender el diseño. 
Cada parcela recibe los 4 tratamientos (un tratamiento por subparcela de una 
misma parcela)? 
Las "ocasiones" (supongo que instantes) son los mismos para cada 
parcela*tratamiento? 
Si mandas un ejemplo de base de datos igual ayudaría a entender el diseño 
Un saludo. Olivier 


- Mensaje original - 
De: "Manuel Spínola" < mspinol...@gmail.com > 
Para: "R" < r-help-es@r-project.org > 
Enviados: Sábado, 29 de Octubre 2016 14:56:02 
Asunto: [R-es] Modelo mixto en R 

Hola quisiera saber como parameterizar el siguiente diseño con lme4. 

Tengo 4 tratamientos, con 4 parcelas cada uno, divididas a su vez en 4 
subparcelas, y se han tomado 5 medidas repetidas (5 ocasiones) y se quiere 
ver el cambio en la variable respuesta producido por los tratamientos a 
través de las 5 ocasiones. 

Mi intento con lmer es el siguiente: 

mod <- lmer(variable respuesta ~ ocasión * tratamiento + (ocasión | 
parcela/subparcela) 

Es correcta esta forma de parameterización del diseño planteado? 

Saludos, 

Manuel Spínola 



-- 
*Manuel Spínola, Ph.D.* 
Instituto Internacional en Conservación y Manejo de Vida Silvestre 
Universidad Nacional 
Apartado 1350-3000 
Heredia 
COSTA RICA 
mspin...@una.cr < mspin...@una.ac.cr > 
mspinol...@gmail.com 
Teléfono: (506) 8706 - 4662 
Personal website: Lobito de río < https://sites.google.com/site/lobitoderio/ > 
Institutional website: ICOMVIS < http://www.icomvis.una.ac.cr/ > 

[[alternative HTML version deleted]] 

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






-- 
Manuel Spínola, Ph.D. 
Instituto Internacional en Conservación y Manejo de Vida Silvestre 
Universidad Nacional 
Apartado 1350-3000 
Heredia 
COSTA RICA 
mspin...@una.cr 
mspinol...@gmail.com 
Teléfono: (506) 8706 - 4662 
Personal website: Lobito de río 
Institutional website: ICOMVIS 


[[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] Modelo mixto en R

2016-10-31 Por tema Olivier Nuñez
Manuel,

no estoy seguro de entender el diseño.
Cada parcela recibe los 4 tratamientos (un tratamiento por subparcela de una 
misma parcela)?
Las "ocasiones" (supongo que instantes) son los mismos para cada 
parcela*tratamiento?
Si mandas un ejemplo de base de datos igual ayudaría a entender el diseño
Un saludo. Olivier
 

- Mensaje original -
De: "Manuel Spínola" 
Para: "R" 
Enviados: Sábado, 29 de Octubre 2016 14:56:02
Asunto: [R-es] Modelo mixto en R

Hola quisiera saber como parameterizar el siguiente diseño con lme4.

Tengo 4 tratamientos, con 4 parcelas cada uno, divididas a su vez en 4
subparcelas, y se han tomado 5 medidas repetidas (5 ocasiones) y se quiere
ver el cambio en la variable respuesta producido por los tratamientos a
través de las 5 ocasiones.

Mi intento con lmer es el siguiente:

mod <- lmer(variable respuesta ~ ocasión * tratamiento + (ocasión |
parcela/subparcela)

Es correcta esta forma de parameterización del diseño planteado?

Saludos,

Manuel Spínola



-- 
*Manuel Spínola, Ph.D.*
Instituto Internacional en Conservación y Manejo de Vida Silvestre
Universidad Nacional
Apartado 1350-3000
Heredia
COSTA RICA
mspin...@una.cr 
mspinol...@gmail.com
Teléfono: (506) 8706 - 4662
Personal website: Lobito de río 
Institutional website: ICOMVIS 

[[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] Encontrar la primera columna no NA

2016-10-27 Por tema Olivier Nuñez

Por último, utilizando la indexación lineal de matriz que propusó luisfo en su 
momento:

> t <- Sys.time()
> M=as.matrix(dat)
> index <- which(!is.na(M)) - 1
> meses<-colnames(M)
> M2<- data.table(columna=index %/% nrow(M) +1L, jugador=index %% nrow(M) +1L , 
> valor=M[index+1L])
> setkey(M2,jugador,columna)
> M2[,.(First_month=meses[columna[1]],Value_First_month=valor[1]),by=jugador]
jugador First_month Value_First_month
 1:   1 Uno0.93520715
 2:   2 Uno0.85930634
 3:   3 dos0.13521503
 4:   4 Uno0.86996341
 5:   5 dos0.65879889
---  
 6:   6 Uno0.94728423
 7:   7 Uno0.24088571
 8:   8 Uno0.07458581
 9:   9 Uno0.30535050
10:  10 Uno0.54640585
> difftime( Sys.time(), t)
Time difference of 0.329 secs
> 
- Mensaje original -
De: Javier Villacampa González <javier.villacampa.gonza...@gmail.com>
Para: Olivier Nuñez <onu...@unex.es>
CC: R ayuda <r-help-es@r-project.org>
Enviado: Thu, 27 Oct 2016 17:17:12 +0200 (CEST)
Asunto: Re: [R-es] Encontrar la primera columna no NA

Hemos mejorado bastante desde el inicio. Pero aun andamos lejos. Igual es
por el merge que hago. Seguire mirando
library(microbenchmark)
N <- 1e1
tabla <-
  microbenchmark(
# JVG_dplyr ={
#   dat %>%
# apply( MARGIN = 1, FUN =
#  function(x){
#which( !is.na(x)  ) %>%  min( na.rm = TRUE ) %>%
return()
#}
# )
#   dat[ , First_month := First_month]
#   N_for <- length( unique(First_month ))
#   for( j in 1:N_for){
# x <- dat[  First_month == j,  j,  with = FALSE]
# dat[ First_month == j , Value_First_month := x ]
#   }
# },
JVG ={
  dat <-
data.table( Uno= sample( c(runif(numero) , rep(NA , numero /2e0
)) , size = numero ) ,
dos= sample( c(runif(numero) , rep(NA , numero /1e1
)) , size = numero ) ,
tres   = sample( c(runif(numero) , rep(NA , numero /2e1
)) , size = numero ) ,
cuatro = sample( c(runif(numero) , rep(NA , numero /1e2
)) , size = numero ) ,
cinco  = sample( c(runif(numero) , rep(NA , numero /2e2
)) , size = numero ) ,
seis   = sample( c(runif(numero) , rep(NA , numero /1e3
)) , size = numero )
)

  apply(X = dat,  MARGIN = 1, FUN =
  function(x){
return(   min(  which( !is.na(x)  ),  na.rm = TRUE ) )
  }
  )
  dat[ , First_month := First_month]
  N_for <- length( unique(First_month ))
  for( j in 1:N_for){
x <- dat[  First_month == j,  j,  with = FALSE]
dat[ First_month == j , Value_First_month := x ]
  }
},
Olivier ={
dat <-
  data.table( Uno= sample( c(runif(numero) , rep(NA , numero /2e0
)) , size = numero ) ,
  dos= sample( c(runif(numero) , rep(NA , numero /1e1
)) , size = numero ) ,
  tres   = sample( c(runif(numero) , rep(NA , numero /2e1
)) , size = numero ) ,
  cuatro = sample( c(runif(numero) , rep(NA , numero /1e2
)) , size = numero ) ,
  cinco  = sample( c(runif(numero) , rep(NA , numero /2e2
)) , size = numero ) ,
  seis   = sample( c(runif(numero) , rep(NA , numero /1e3
)) , size = numero )
  )
  dat[,First_month   := apply(X = .SD,MARGIN = 1,FUN = function(x)
colnames(.SD)[min(which(!is.na(x)))])]
  dat[,Value_First_month := apply(X = .SD,MARGIN = 1,FUN = function(x)
x[min(which(!is.na(x)))])]
},
Olivier2={
  dat <-
data.table( Uno= sample( c(runif(numero) , rep(NA , numero /2e0
)) , size = numero ) ,
dos= sample( c(runif(numero) , rep(NA , numero /1e1
)) , size = numero ) ,
tres   = sample( c(runif(numero) , rep(NA , numero /2e1
)) , size = numero ) ,
cuatro = sample( c(runif(numero) , rep(NA , numero /1e2
)) , size = numero ) ,
cinco  = sample( c(runif(numero) , rep(NA , numero /2e2
)) , size = numero ) ,
seis   = sample( c(runif(numero) , rep(NA , numero /1e3
)) , size = numero )
)

  dat[,jugador:=1:.N]
  dat2=melt(dat,id.vars="jugador")
  setkey(dat2,jugador)
  dat2[,index:=min(which(!is.na(value))),by=jugador]
  dat3 <- dat2[,list(First_month_Olivier
=variable[index[1]],Value_First_month_Olivier =value[index[1]]),by=jugador]
  setkey(x = dat, jugador)
  dat0 <- merge( x = dat, y = dat3, all.x = TRUE, all.y = FALSE)

},
times = N, unit = "s")

tabla %>%  print
beepr::beep(3)

# Unit: se

Re: [R-es] Encontrar la primera columna no NA

2016-10-27 Por tema Olivier Nuñez
Otra solución algo más rapida:
> t <- Sys.time()
> dat[,jugador:=1:.N]
> dat2=melt(dat,id.vars="jugador")
> setkey(dat2,jugador)
> dat2[,index:=min(which(!is.na(value))),by=jugador]
> dat2[,.(First_month=variable[index[1]],Value_First_month=value[index[1]]),by=jugador]
jugador First_month Value_First_month
 1:   1 Uno0.93520715
 2:   2 Uno0.85930634
 3:   3 dos0.13521503
 4:   4 Uno0.86996341
 5:   5 dos0.65879889
---  
 6:   6 Uno0.94728423
 7:   7 Uno0.24088571
 8:   8 Uno0.07458581
 9:   9 Uno0.30535050
10:  10 Uno0.54640585
> difftime( Sys.time(), t)
Time difference of 1.060787 secs


- Mensaje original -
De: "Olivier Nuñez" <onu...@unex.es>
Para: "Javier Villacampa González" <javier.villacampa.gonza...@gmail.com>
CC: "R ayuda" <r-help-es@r-project.org>
Enviados: Jueves, 27 de Octubre 2016 15:10:07
Asunto: Re: [R-es] Encontrar la primera columna no NA

Prueba lo siguiente, no es óptimo, pero creo va bastnate más rapido que los que 
mencionaste:

t <- Sys.time()
dat[,First_month := apply(.SD,1,function(x) 
colnames(.SD)[min(which(!is.na(x)))])]
dat[,Value_First_month := apply(.SD,1,function(x) x[min(which(!is.na(x)))])]
difftime( Sys.time(), t)

Time difference of 3.478778 secs


- Mensaje original -
De: "Javier Villacampa González" <javier.villacampa.gonza...@gmail.com>
Para: "R ayuda" <r-help-es@r-project.org>
Enviados: Jueves, 27 de Octubre 2016 13:43:19
Asunto: [R-es] Encontrar la primera columna no NA

Imaginemos que tenemos una matriz con datos temporales por sujetos.
Pongamos que numero de veces que ha jugado una carta en un juego online. Y
que quiero saber cuantas veces jugo la carta el primer mes que estuvo en el
juego.

Pero claro mi matriz guarda los datos temporalmente de tal manera que:

# data.table( Enero = c( 1, 4, NA , NA , NA) , Febrero = c( 2, 6, 1, NA, NA
) , Marzo = c( 8,6,7,3, NA) ,  Abril = c( NA, 15, 5, 6,6 ))
#Enero Febrero Marzo Abril
# 1: 1   2 8NA
# 2: 4   6 615
# 3:NA   1 7 5
# 4:NA  NA 3 6
# 5:NA  NANA 6
# Suponiendo que cada fila es un jugador
# En este caso la solucion debería ser
# 1 para el primero que empezó en Enero
# 4 para el segundo jugador  que empezó en Enero
# 1 para el tercero  que empezó en Febrero
# 3 Para el cuarto  que empezó en Marzo
# 6 para el quinto  que empezó en Abril


A alguno se os ocurre una solucion más eficiente que la siguiente. Esto
seguro que con data table o dplyr se puede. Ya he quitados los pipes que
facilitan la lectura pero que no se llevan bien con data.table. Pero estoy
seguro que se puede mejorar más.

#===
# Como ejemplo de codigo
#===
# S Primera solucion --
# First not NA colum per subject
library(data.table)
library(dplyr)
set.seed(123456)
numero <- 1e5
dat <-
  data.table( Uno  = sample( c(runif(numero) , rep(NA , numero /2e0  )),
size = numero ) ,
dos= sample( c(runif(numero) , rep(NA , numero /1e1  )),
size = numero ) ,
tres   = sample( c(runif(numero) , rep(NA , numero /2e1 )) ,
size = numero ) ,
cuatro = sample( c(runif(numero) , rep(NA , numero /1e2 )) ,
size = numero ) ,
cinco  = sample( c(runif(numero) , rep(NA , numero /2e2 )) ,
size = numero ) ,
seis   = sample( c(runif(numero) , rep(NA , numero /1e3 )) ,
size = numero )
)


t <- Sys.time()
First_month <-
  dat %>%
  apply( MARGIN = 1, FUN =
   function(x){
 which( !is.na(x)  ) %>%  min( na.rm = TRUE ) %>%  return()
   }
  )



First_month %>%  table %>%  prop.table
dat[ , First_month := First_month]
N_for <- length( unique(First_month ))
for( j in 1:N_for){
  x <- dat[  First_month == j,  j,  with = FALSE]
  dat[ First_month == j , Value_First_month := x ]
}

dat %>%  print
# dat %>%  summary

cat( "===\n", difftime( Sys.time(), t, units =
"min") , " minutos que cuesta \n===\n" )
beepr::beep(3)
# E Primera solucion --




# S comparativa ---
library(microbenchmark)
N <- 1e2
tabla <-
  microbenchmark(
JVG_dplyr ={  dat %>%
apply( MARGIN = 1, FUN =
 function(x){
   which( !is.na(x)  ) %>%  min( na.rm = TRUE ) %>

Re: [R-es] Encontrar la primera columna no NA

2016-10-27 Por tema Olivier Nuñez
Prueba lo siguiente, no es óptimo, pero creo va bastnate más rapido que los que 
mencionaste:

t <- Sys.time()
dat[,First_month := apply(.SD,1,function(x) 
colnames(.SD)[min(which(!is.na(x)))])]
dat[,Value_First_month := apply(.SD,1,function(x) x[min(which(!is.na(x)))])]
difftime( Sys.time(), t)

Time difference of 3.478778 secs


- Mensaje original -
De: "Javier Villacampa González" 
Para: "R ayuda" 
Enviados: Jueves, 27 de Octubre 2016 13:43:19
Asunto: [R-es] Encontrar la primera columna no NA

Imaginemos que tenemos una matriz con datos temporales por sujetos.
Pongamos que numero de veces que ha jugado una carta en un juego online. Y
que quiero saber cuantas veces jugo la carta el primer mes que estuvo en el
juego.

Pero claro mi matriz guarda los datos temporalmente de tal manera que:

# data.table( Enero = c( 1, 4, NA , NA , NA) , Febrero = c( 2, 6, 1, NA, NA
) , Marzo = c( 8,6,7,3, NA) ,  Abril = c( NA, 15, 5, 6,6 ))
#Enero Febrero Marzo Abril
# 1: 1   2 8NA
# 2: 4   6 615
# 3:NA   1 7 5
# 4:NA  NA 3 6
# 5:NA  NANA 6
# Suponiendo que cada fila es un jugador
# En este caso la solucion debería ser
# 1 para el primero que empezó en Enero
# 4 para el segundo jugador  que empezó en Enero
# 1 para el tercero  que empezó en Febrero
# 3 Para el cuarto  que empezó en Marzo
# 6 para el quinto  que empezó en Abril


A alguno se os ocurre una solucion más eficiente que la siguiente. Esto
seguro que con data table o dplyr se puede. Ya he quitados los pipes que
facilitan la lectura pero que no se llevan bien con data.table. Pero estoy
seguro que se puede mejorar más.

#===
# Como ejemplo de codigo
#===
# S Primera solucion --
# First not NA colum per subject
library(data.table)
library(dplyr)
set.seed(123456)
numero <- 1e5
dat <-
  data.table( Uno  = sample( c(runif(numero) , rep(NA , numero /2e0  )),
size = numero ) ,
dos= sample( c(runif(numero) , rep(NA , numero /1e1  )),
size = numero ) ,
tres   = sample( c(runif(numero) , rep(NA , numero /2e1 )) ,
size = numero ) ,
cuatro = sample( c(runif(numero) , rep(NA , numero /1e2 )) ,
size = numero ) ,
cinco  = sample( c(runif(numero) , rep(NA , numero /2e2 )) ,
size = numero ) ,
seis   = sample( c(runif(numero) , rep(NA , numero /1e3 )) ,
size = numero )
)


t <- Sys.time()
First_month <-
  dat %>%
  apply( MARGIN = 1, FUN =
   function(x){
 which( !is.na(x)  ) %>%  min( na.rm = TRUE ) %>%  return()
   }
  )



First_month %>%  table %>%  prop.table
dat[ , First_month := First_month]
N_for <- length( unique(First_month ))
for( j in 1:N_for){
  x <- dat[  First_month == j,  j,  with = FALSE]
  dat[ First_month == j , Value_First_month := x ]
}

dat %>%  print
# dat %>%  summary

cat( "===\n", difftime( Sys.time(), t, units =
"min") , " minutos que cuesta \n===\n" )
beepr::beep(3)
# E Primera solucion --




# S comparativa ---
library(microbenchmark)
N <- 1e2
tabla <-
  microbenchmark(
JVG_dplyr ={  dat %>%
apply( MARGIN = 1, FUN =
 function(x){
   which( !is.na(x)  ) %>%  min( na.rm = TRUE ) %>%
return()
   }
)
},
JVG ={
apply(X = dat,  MARGIN = 1, FUN =
 function(x){
   return(   min(  which( !is.na(x)  ),  na.rm = TRUE ) )
 }
)
},
times = N, unit = "s")

tabla %>%  print
beepr::beep(3)

# Unit: seconds
#   exprminlq   mean medianuq   max
neval
# JVG_dplyr 21.2321152 22.233428 22.9575357 22.5701781 23.32
26.64273010
# JVG0.7628928  0.843067  0.9260389  0.8495834  1.027036
1.29586810
# E comparativa ---

--

[[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] Quitar datos atípicos de una recta

2016-10-24 Por tema Olivier Nuñez
Igual, no hace falta quitarlos:

require(MASS)
fit=rlm(y~x) # regresión robusta
abline(fit)

Un saludo. Olivier

- Mensaje original -
De: "Jesús Para Fernández" 
Para: "Isidro Hidalgo Arellano" , r-help-es@r-project.org
Enviados: Lunes, 24 de Octubre 2016 10:00:29
Asunto: Re: [R-es] Quitar datos atípicos de una recta

Ok, lo pruebo y os digo...


Jes�s



De: Isidro Hidalgo Arellano 
Enviado: lunes, 24 de octubre de 2016 9:46
Para: 'Jes�s Para Fern�ndez'; r-help-es@r-project.org
Asunto: RE: [R-es] Quitar datos at�picos de una recta

Hay un paquete que lo hace, pero no lo he utilizado, as� que no s� c�mo se 
porta: "outliers"...
Un saludo

Isidro Hidalgo Arellano
Observatorio del Mercado de Trabajo
Consejer�a de Econom�a, Empresas y Empleo
http://www.castillalamancha.es/
Inicio | Gobierno de Castilla-La Mancha
www.castillalamancha.es
Web oficial del gobierno auton�mico de Castilla-La Mancha con informaci�n sobre 
actividad administrativa, econom�a, educaci�n, sanidad, servicios sociales, 
sede ...




-Mensaje original-
De: R-help-es [mailto:r-help-es-boun...@r-project.org] En nombre de Jes�s Para 
Fern�ndez
Enviado el: lunes, 24 de octubre de 2016 9:33
Para: r-help-es@r-project.org
Asunto: [R-es] Quitar datos at�picos de una recta

Buenas,


Tengo unas rectas en las que cada x n?mero de ellas hay alg?n error en la 
captura de los datos y se produce un outlier.

Os pongo un ejemplo:

x<-rnorm(15,12,2)
y<-jitter(x,200)
y[7]<-20
plot(x,y)


En este ejemplo se ve muy claro que el outlier y quitarlo seria facil, pero... 
?como hacerlo de manera automatica? es que hay mil curvas com oesta y puede ser 
una locura.


Gracias chicos

Jes?s



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

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

Re: [R-es] Sacar el número de vez que ocurre algo

2016-09-30 Por tema Olivier Nuñez
> datos=data.frame(Referencia=rep(letters[1:4],each=4),Tiempo=.1*rep(1:4,4),Valor=rpois(16,20))
> datos
   Referencia Tiempo Valor
1   a0.119
2   a0.216
3   a0.320
4   a0.415
5   b0.114
6   b0.229
7   b0.319
8   b0.423
9   c0.117
10  c0.222
11  c0.319
12  c0.418
13  d0.120
14  d0.224
15  d0.311
16  d0.419
> max.tiempo=tapply(datos$Valor,datos$Referencia,function(x) 
> datos$Tiempo[which.max(x)])
> max.tiempo
  a   b   c   d 
0.3 0.2 0.2 0.2 
> 
Un saludo. Olivier


- Mensaje original -
De: "Jesús Para Fernández" 
Para: r-help-es@r-project.org
Enviados: Viernes, 30 de Septiembre 2016 16:27:52
Asunto: [R-es] Sacar el número de vez que ocurre algo

Buenas,


Tengo un data.frame con la siguiente esstructura:


Referencia   Tiempo   Valor

a   1   15

a   2   25

a   3   28

a   4   40

b  130

b   2   38

b   3   32

b   4   31

c   129

c   224

c   363

c  4 24


Quiero obtener como salida para cada referencia en que segundo se alcanza el 
valor m�ximo, es decir, qu em ede la siguiente respuesta:


a   4   40

b   2   38

c   363



Para ello he creado el siguiente codigo:


maximo<-tapply(datos$Valor,datos$Tiempo,function(x){c(grep(max(datos$Valor),datos$Valor),max(x)})


Pero me devuelve cosas raras.

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] t-test y distribución de variables

2016-09-14 Por tema Olivier Nuñez

Entiendo que quieres regularizar tus datos agregandolos.
El test de Shapiro rechaza la normalidad de una uniforme

> set.seed(1234)
> d=runif(100, min = 2, max = 4)
> shapiro.test(d)

Shapiro-Wilk normality test

data:  d
W = 0.94504, p-value = 0.0003966

Pero acepta la normalidad de medias de 5 uniformes:
> i=replicate(100,mean(sample(d,5)))
> shapiro.test(i)

Shapiro-Wilk normality test

data:  i
W = 0.98641, p-value = 0.3991

Ahora bien, en todo caso, deberias contrastar la normalidad de tus "medias" en 
el seno de cada grupo y actualizar los grados de libertad de tu t-test basado 
en medias de medias. Pero mi consejo es optar por una solución más ortodoxa, 
tipo trimm-mean o test no parametrico.
Un saludo. Olivier


- Mensaje original -
De: "JM Arbones" 
Para: r-help-es@r-project.org
Enviados: Martes, 13 de Septiembre 2016 16:13:08
Asunto: [R-es] t-test y distribución de variables

Hola,
Estoy analizando unos datos para una tesis doctoral.
Durante la investigación se han recogido distintas variables clínicas de 
dos grupos (n=30 y n=40). Me encuentro que las comparaciones de medias 
se han realizado mediante t-tests sin preocuparse de estudiar la 
distribución de las variables.  Al revisar si las variables se ajustan a 
la distribución normal, aunque los QQplots no tienen "mala pinta" las 
distribuciones de las variables se alejan de la normalidad 
(Shapiro-Wilks<0.01).
Aunque se podrían utilizar otros métodos (no parametricos, 
permutaciones, etc) para realizar las comparaciones, el doctorando se 
empeña en utilizar las pruebas t (imagino que por no rehacer todos los 
resultados).


Entiendo que el t-test es una prueba bastante robusta y puede tolerar 
desviaciones de la normalidad, también entiendo que el criterio para 
poder aplicar esta prueba es que la distribución de las medias (no de 
las variables) sea normal. Se me ha ocurrido que si  remuestreo (siendo 
d la variable de estudio)

  for (n in 1:500){
   i[n]=mean(sample(d,20))}

y justifico que la distribución de las medias sigue una distribución normal

shapiro.test(i)

podría decir que las pruebas t (utilizando la correccion de Welch por si 
acaso) se hacen "con todas las de la ley".

Me gustaria que los que sabeis de esto me dierais vuestra opinion con 
respecto a este apaño.

Un saludo y muchas gracias

Jose Miguel

___
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] Función para imprimir contenido en una app interactiva de Shiny

2016-07-06 Por tema Olivier Nuñez
Juan,

la función downloadButton() en el "UI" te hace el button y 
la función downloadHandler() en el "Server" permite descargar graficos, tablas, 
...

Un saludo. Olivier  

- Mensaje original -
De: "Juan Carlos Rodríguez Rojo" 
Para: r-help-es@r-project.org
Enviados: Miércoles, 6 de Julio 2016 12:30:11
Asunto: [R-es] Función para imprimir contenido en una app interactiva de Shiny

Buenos días:

En algunas aplicaciones para visualización de datos con Shiny, los usuarios me 
piden la posibilidad de imprimir (sea en pdf o en una impresora) desde la 
propia app. Es decir, necesitaría añadir un icono para que al pulsarlo se 
pudiese imprimir el gráfico o la tabla o el dashboard que el usuario está 
viendo o el contenido de toda la app o el contenido que el usuario seleccione. 
No sé si es posible alguna de estas opciones.

Muchas gracias.

Juan Carlos Rodríguez Rojo
crodrig...@qindice.com
jcrr...@gmail.com
jcrr...@icloud.com
+52 (55) 3911 6199
+34 619262139

___
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] Asignar a un dataframe un id de otro dataframe en función de intervalos con fechas

2016-06-23 Por tema Olivier Nuñez
> tapply(df2$time,df2$label,FUN=function(x) df1$id[!(xdf1$end)])
 2012_1 2012_10  2012_2  2012_3  2012_4  2012_5  2012_6  2012_7  2012_8  2012_9 
  2   9   2   2   2   2   2   5   9  10 

Un saludo. Olivier


- Mensaje original -
De: "Isa García Barón" 
Para: r-help-es@r-project.org
Enviados: Jueves, 23 de Junio 2016 16:09:21
Asunto: [R-es] Asignar a un dataframe un id de otro dataframe en función de 
intervalos con fechas

Hola a todxs, 

No encuentro la manera de hacer algo que aparentemente parece muy sencillo:

Tengo dos dataframe, en el primero tengo una serie de códigos con hora de
inicio y hora de fin y en el segundo otros códigos asociados a una hora; Lo
que necesito es crear una nueva variable en el segundo data frame que
indique a qué intervalo del primer data frame (df1$id) pertenece cada nivel
del segundo dataframe (df2$label).

Os dejo un ejemplo reproducible:

df1 <- data.frame(id=seq(1, 10, 1),begin=c("2012-09-06 09:34:00","2012-09-06
10:18:00","2012-09-06 10:53:00","2012-09-06 11:28:00","2012-09-06
12:02:00","2012-09-06 12:36:00","2012-09-06 16:36:00","2012-09-07
08:42:00","2012-09-07 09:16:00", "2012-09-07 09:51:00"),end=c("2012-09-06
10:03:00","2012-09-06 10:53:00","2012-09-06 11:28:00","2012-09-06
12:02:00","2012-09-06 12:36:00","2012-09-06 12:55:00","2012-09-06
16:59:00","2012-09-07 09:16:00","2012-09-07 09:51:00","2012-09-07
10:17:00"))

df2 <- data.frame(label=c("2012_1",
"2012_2","2012_3","2012_4","2012_5","2012_6","2012_7","2012_8","2012_9","201
2_10"),time=c("2012-09-06 10:34:00","2012-09-06 10:35:00","2012-09-06
10:36:00","2012-09-06 10:37:00","2012-09-06 10:38:00","2012-09-06
10:39:00","2012-09-06 12:33:00","2012-09-07 09:19:00","2012-09-07 09:52:00",
"2012-09-07 09:43:00"))

resultado <- data.frame(label=c("2012_1",
"2012__2","2012_3","2012_4","2012_5","2012_6","2012_7","2012_8","2012_9","20
12_10"),date=c("2012-09-06 10:34:00","2012-09-06 10:35:00","2012-09-06
10:36:00","2012-09-06 10:37:00","2012-09-06 10:38:00","2012-09-06
10:39:00","2012-09-06 12:33:00","2012-09-07 09:19:00","2012-09-07
09:52:00","2012-09-07 09:43:00"),id=c(2,2,2,2,2,2,5,8,9,8))

Supongo que el primer paso es convertir las variables que tienen fecha a
formato POSIXlt con strptime{base}, así:

df1$begin <- strptime(df1$begin, format="%Y-%m-%d %H:%M:%S")
df1$end <- strptime(df1$end, format="%Y-%m-%d %H:%M:%S")

df2$date <- strptime(df2$date, format="%Y-%m-%d %H:%M:%S")

y quizá después calcular el intervalo entre las fechas del df1, así:

df1$intervals <- as.interval(df1$begin, df1$end)

A partir de aquí no sé cómo asignar la variable id a df2, he probado con
%within%, pero quizá no se cómo usarlo bien, 

Muchísimas gracias, 

Isa

___
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] RV: Extraer datos de una variable factor

2016-06-08 Por tema Olivier Nuñez
Isabel,

A qué correspondent las latitudes/longitudes asociadas a un mimo transecto?
Intuyo que corresponden a las coordenadas de las extremidades de los segmentos 
que conforman el transecto.
Si es así, me temo que necesitas todas estas coordenadas para calcular la 
"longitud" total (en km) de tu tranbsecto.
No sólo la primera y la ultima, no?
Un saludo. Olivier


no deberias utilizar todas las lat/long para calcular la distancia recoorida a 
lo largo de un transecto

- Mensaje original -
De: "Isa García Barón" 
Para: r-help-es@r-project.org
Enviados: Miércoles, 8 de Junio 2016 11:24:04
Asunto: [R-es] RV: Extraer datos de una variable factor

 

Hola a todos, 

 

Espero que pod�is ayudarme con lo que necesito, aparentemente parece
sencillo, pero no doy con la soluci�n:

 

Tengo una base de datos con puntos GPS pertenecientes a diferentes
transectos, organizada de la siguiente manera: Un dataframe con coordenadas
(latitud y longitud) divididas por transectos ( cada nivel de la variable
tipo factor) y  varias filas de coordenadas para cada transecto, como en el
siguiente ejemplo:

 


VAR 1

LATITUD

LONGITUD


A

Y1

X1


A

Y1

X2


A

Y3

X3


B

Y4

X4


B

Y5

X5


B

6Y

X6


C

Y7

X7


C

Y8

X8


D

Y9

X9


D

Y10

X10


D

Y11

X11


D

Y12

X12


D

Y13

X13

 

Necesito extraer, �nicamente, por cada transecto, la primera y �ltima fila,
es decir las posiciones de inicio y fin del transecto. Para despu�s poder
dividir los transectos en segmentos de x km.

 

Espero haberme explicado bien, 

 

Muchas gracias, 

 

Isabel Garc�a

 

 


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

2016-05-30 Por tema Olivier Nuñez
Mira lapply 

Si L= list(L1,L2,...,L120) es una lista de tus lotes

ajuste <- function(L) glm(y~x,data=L)
fit=lapply(L1,ajuste)

donde "fit" es la lista de 120 ajustes.

Un saludo. Olivier
 
- Mensaje original -
De: "Andres Hirigoyen" 
Para: r-help-es@r-project.org
Enviados: Lunes, 30 de Mayo 2016 14:55:19
Asunto: [R-es] Codigo

Buenos días tengo una consulta sobre un código rutinario que quiero
ejecutar.

Tengo 120 Lotes con un ID diferente (del C001 al C120) a cada uno de  los
cuales debo efectuares un GLM y con los parámetros obtenidos calcular otras
variables para luego hacer gráficas, razón por la cual no puedo procesarlos
todos juntos.
Intente hacer una sentencia repeat() o con for() para que me ejecute de
forma individual cada lote y no tener que hacerlo a mano, pero no me sale...
¿¿Alguna idea??

[[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 gamma / cero inflated

2016-04-06 Por tema Olivier Nuñez
Si tus datos son enteros, una poisson debería ir bien.
En cuanto al segundo punto, un 20% de ceros no tiene porque ser mucho para una 
poisson.
Una poisson de media 1, tiene unos 37% de ceros ( dpois(0,1) ).
Depende emucho de como son los demás valores.
Un saludo. Olivier

- Mensaje original -
De: "Eliana Eberle" 
Para: R-help-es@r-project.org
Enviados: Martes, 5 de Abril 2016 15:14:01
Asunto: [R-es] familia gamma / cero inflated

Estimado,

Tengo dos consultas,

-Tengo datos que contienen ceros en datos con distribución Poisson, y quisiera 
utilizar una familia gamma para la realización de GLM. 
Como puedo modificar los ceros para poder aplicar la familia?


- Tengo 98 datos y 20 son ceros, debería considerar zero inflated?

Saludos

___
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] Efectos aleatorios anidados en gamlss

2016-03-08 Por tema Olivier Nuñez
Santiago,

Tienes un modelo con tres niveles y tu implementación del efecto aleatorio 
anidado es correcta.
La variabilidad de random(A) mide la variabilidad entre familias.
La variabilidad de random(A:B) mide la variabilidad entre "generos" en el seno 
de una misma familia.  

Para quedarte tranquilo echale una lectura al capitulo "Mixed and Multilevel 
Models" de este tutorial:
http://conjugateprior.org/2013/01/formulae-in-r-anova/

Un saludo. Olivier



El modelo con el código en amarillo es ajustado con gamlss sin problemas.
¿Es correcto la forma randon(A)+random(A:B) para considerar un efecto
aleatorio anidado como (1|A/B)?

- Mensaje original -
De: "Santiago Barbini" 
Para: r-help-es@r-project.org
Enviados: Lunes, 7 de Marzo 2016 15:37:06
Asunto: [R-es] Efectos aleatorios anidados en gamlss

Hola a tod@s,

tengo una duda que la comunidad R me puede ayudar. Estoy trabajando con
gamlss, porque tengo una variable respuesta con valores entre 0 y 1 e
incluidos estos. La distribución que utilizo com gamlss para este caso es
"beta inflated" (Stasinopulos and Rigby 2007. Journal of Statistical
Software 23(7)). El modelo que intento correr es:

m1<-gamlss(Teleosteos ~
cs(LT_max)+random(Familia/Genero,lambda=T),family=BEINF, data = datos)

donde LT_max es la talla máxima de especies de peces y la variable
respuesta es la proporción del consumo de peces teleósteos de cada especie.
El efecto aleatorio es anidado de géneros y familias taxonómicas de
especies (género dentro de familia). El problema que tengo es que los
gamlss no toman el efecto aleatorio como random(Familia/Genero) o
(1|Familia/Genero), sino como:

m2<-gamlss(Teleosteos ~ cs(LT_max)+
random(Familia,lambda=T)+random(Familia:Genero,lambda=T),family=BEINF, data
= datos)

El modelo con el código en amarillo es ajustado con gamlss sin problemas.
¿Es correcto la forma randon(A)+random(A:B) para considerar un efecto
aleatorio anidado como (1|A/B)?

Muchas gracias de antemano y saludos cordiales a toda la comunidad,

Santiago.

-- 
Santiago A. Barbini
*Laboratorio de Ictiología*
Instituto de Investigaciones Marinas y Costeras (IIMyC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
Universidad Nacional de Mar del Plata (UNMdP)
Funes 3350 - B7602AYL - Mar del Plata
ARGENTINA
http://www.iimyc.gob.ar/
--

[[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] Representar datos longitudinales mediante splines

2016-03-04 Por tema Olivier Nuñez
Prueba esto:

ggplot(df,aes(x,x,y=y,color=id))+geom_smooth(method="gam")+geom_point()

Un saludo. Olivier

- Mensaje original -
De: "Francisco Javier" 
Para: r-help-es@r-project.org
Enviados: Jueves, 3 de Marzo 2016 21:35:57
Asunto: [R-es] Representar datos longitudinales mediante splines

Buenas noches a todos,


Me dirijo a vosotros porque estoy trabajando con medidas repetidas sobre un 
grupo de sujetos y quisiera graficar la evoluci�n temporal de cada uno de ellos 
pero suavizada mediante un spline (o en su defecto alg�n tipo de l�nea 
suavizadora que no necesariamente tenga que pasar por los puntos de cada 
sujeto). Adem�s, quisiera hacerlo en R b�sico, esto es, sin recurrir al uso de 
paquetes adicionales tipo lattice,  ggplot2.


A modo de ejemplo, tengo el siguiente data frame:


df <- data.frame(

id = factor(rep(c(1,2,3), c(3,4,3))),
x = c( 1, 14, 22,  2, 9,  20, 25,  4,  15,  22),
y = c(35, 28, 52, 79, 64, 70, 95, 45, 102, 105))


E intento (sin conseguir resultado):


plot(df$x, df$y, xlab = "time", ylab="value", type="n", xlim = c(0,25), 
ylim=c(20,120))
for(i in unique(df$id)) {
 lines(lowess(df$x[df$id == i], df$y[df$id == i], col = df$id))  }
points(x = df$x, y = df$y, pch=16, col = df$id)  # Los datos 
asociados a cada id con un color de referencia
title("Scatter Plot of value vs. time")


�Muchas gracias por cualquier ayuda al respecto!


Francisco

[[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] Efectos de la regresion logistica

2016-02-18 Por tema Olivier Nuñez
En la formula de la regresión pon "-1":

y ~ -1 + Dia 

Así te quitas la constante del modelo, y los efectos que estimas para cada dia 
ya no son relativos.
En realidad, tu interpretación es correcta y interpretar el efecto de un día 
respecto al otro, es facil de comunicar.
Un saludo. Olivier

- Mensaje original -
De: "Milagros Camacho" 
Para: r-help-es@r-project.org
Enviados: Jueves, 18 de Febrero 2016 14:09:31
Asunto: [R-es] Efectos de la regresion logistica

Buenas tardes a todos:

Tengo un problema al interpretar los coeficientes de una regresión 
logística.

Tengo varios grupos de variables predictoras que son indicadoras o dummy 
variables y representan todos los días de la semana y todas las horas 
del día. Al meter en el modelo, por ejemplo, las 7 indicadoras como 
características de los día de la semana una se ha de quitar, ya que es 
el contrario de las 6 restantes, es decir, la variable no introducida es 
para el modelo la negación de las otras 6. Con las variables horas del 
día pasa lo mismo. El modelo es bueno y al realizar el cross validation 
sale un buen porcentaje de acierto.

El problema es la interpretación de los coeficientes de las variables 
indicadoras, ya que los 6 coeficientes que obtengo para las variables 
indicadoras del día de la semana es en contraste con la variable 
indicadora que no he introducido en el modelo, es decir, si la variable 
indicadora no indroducida fuera el sábado la interpretación del efecto 
del lunes es en contraste con el efecto del sábado.

¿Cómo podría medir solo el efecto de la variable lunes sin tener en 
cuenta el sábado a partir del modelo?


Un saludo y gracias de antemano.

---
El software de antivirus Avast ha analizado este correo electrónico en busca de 
virus.
https://www.avast.com/antivirus

___
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] Invertir dcast

2016-02-11 Por tema Olivier Nuñez
Con data.table todo puede ir muy rapido.
> require(data.table)
> M=matrix(c(5,NA,NA,NA,6,NA,7,NA,8),3,3)
> M
 [,1] [,2] [,3]
[1,]5   NA7
[2,]   NA6   NA
[3,]   NA   NA8
> M2=data.table(M)
> M2
   V1 V2 V3
1:  5 NA  7
2: NA  6 NA
3: NA NA  8
> M3=melt(M2,variable.name = "columna")
> M3
   columna value
1:  V1 5
2:  V1NA
3:  V1NA
4:  V2NA
5:  V2 6
6:  V2NA
7:  V3 7
8:  V3NA
9:  V3 8
> M3[,.(fila=which(!is.na(value)),value=na.omit(value)),by=columna]
   columna fila value
1:  V11 5
2:  V22 6
3:  V31 7
4:  V33 8
> 

Un saludo. Olivier

- Mensaje original -
De: "Javier Marcuzzi" 
Para: "Ruben Bermad" , r-help-es@r-project.org
Enviados: Jueves, 11 de Febrero 2016 12:45:02
Asunto: Re: [R-es] Invertir dcast

Estimado Ruben Bernard

¿Usted desea algo como sparce matrix?

Javier Rubén Marcuzzi

De: Ruben Bermad
Enviado: jueves, 11 de febrero de 2016 9:40
Para: r-help-es@r-project.org
Asunto: [R-es] Invertir dcast

Hola a todos, 
Queria preguntaros si conoceis alguna manera para invertir la funcion dcast. 
Quiero transformar una matriz en un data frame de tres columnas que indiquen 
solo los casos donde la combinacion fila-columna sea diferente de NA. 
Se me habia ocurrido hacer un bucle que fuera seleccionando todos los valores 
para cada combinacion de fila y columna, pero el problema es que con una matriz 
de 53000x5000 tarda demasiado, y tengo muchos valores NA que no me sirven de 
nada. 
Alguien sabe como podr�a invertir el dcast sin pasar  por todas las 
combinaciones. 
Muchas gracias por adelantado, Un cordial saludo,Ruben

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

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

Re: [R-es] Paquete para elevar un matriz a una potencia real

2016-02-09 Por tema Olivier Nuñez
 require(expm)
 M <- matrix(c(1,0,1,1),2,2)
 M
 [,1] [,2]
[1,]11
[2,]01
 sqrt.M=expm(.5*logm(M))
 sqrt.M%*%sqrt.M
 [,1] [,2]
[1,]11
[2,]01

Un saludo. Olivier

- Mensaje original -
De: "albert dorador" 
Para: r-help-es@r-project.org
Enviados: Martes, 9 de Febrero 2016 10:16:08
Asunto: [R-es] Paquete para elevar un matriz a una potencia real

Saludos a todos!

Conoceis algun paquete que permita elevar una matriz a cualquier  
potencia, sin la limitacion de que la potencia haya de ser un entero?  
Se que existe el paquete expm que implementa el operando %^%, pero la  
potencia ha de ser necesariamente un entero (i.e. no permite elevar a  
decimales, fracciones, etc.).

Agradeceria enormemente saberlo ya que estoy ultimando los detalles de  
una funcion que he programado que permite elevar cualquier matriz  
(cuadrada) a cualquier potencia real (incluyendo fracciones, etc.), y  
de no existir ninguna funcion similar trataria de incluirla en algun  
paquete relacionado o crear uno propio.

Muchas gracias de antemano!

___
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] Añadir encabezados a un archivo TXT

2015-12-17 Por tema Olivier Nuñez
Gerard, 

dos preguntas: 
1) Porqué quieres directamente especificar los encabezados en el fichero? Es 
porqué tus ficheros no tienen las columnas igualmente ordenadas? 
2) Qué sistema operativo tienes? 

Un saludo. Olivier 


- Mensaje original -

De: "Reverté Calvet, Gerard" <greve...@ajmataro.cat> 
Para: "Olivier Nuñez" <onu...@unex.es>, "Javier Marcuzzi" 
<javier.ruben.marcu...@gmail.com> 
CC: "Carlos Ortega" <c...@qualityexcellence.es>, R-help-es@r-project.org 
Enviados: Jueves, 17 de Diciembre 2015 12:02:09 
Asunto: RE: [R-es] Añadir encabezados a un archivo TXT 



Gracias Olivier, tu propuesta funciona, pero el problema es que no tengo 
suficiente memoria. Me pasa lo mismo haciendo: 



cat(readLines(“archivo datos.txt”),file=”archivo con 
encabezado.txt”,sep=”\n”,append=TRUE), con esta opción funciona pero no tengo 
suficiente memoria para todos los datos. 



Muchas gracias a todos por vuestra ayuda. 






Gerard Reverté 





De: Olivier Nuñez [mailto:onu...@unex.es] 
Enviado el: miércoles, 16 de diciembre de 2015 16:09 
Para: Javier Marcuzzi 
CC: Reverté Calvet, Gerard; Carlos Ortega; R-help-es@r-project.org 
Asunto: Re: [R-es] Añadir encabezados a un archivo TXT 





Gerard, 





supongamos que tu fichero de texto ("test.txt") tiene cuatro columnas separadas 
por espacios. 


Si decides llamar estas columnas por ("A","B","C","D"), lo siguiente debería 
funcionar: 





linea0="A B C D" 


fichero <- file("test.txt") 
linea1<- readLines(fichero) 
writeLines(c(linea0,linea1), con=fichero) 
close(fichero) 









- Mensaje original -



De: "Javier Marcuzzi" < javier.ruben.marcu...@gmail.com > 
Para: "Reverté Calvet, Gerard" < greve...@ajmataro.cat >, "Carlos Ortega" < 
c...@qualityexcellence.es > 
CC: R-help-es@r-project.org 
Enviados: Miércoles, 16 de Diciembre 2015 15:17:45 
Asunto: Re: [R-es] Añadir encabezados a un archivo TXT 





Estimados 



Una idea, si no comprendo mal puede leer los archivos txt desde R, pero estos 
no tienen encabezado, podría colocar esto en un data.frame y usar rbind o 
colnames para escribir los encabezados, luego guardar los data.frame con 
encabezados en un archivo txt. No recuerdo pero creo e Rstudio o Rcmdr tienen 
algo para escribir encabezados al importar los datos, o se puede ver el código 
que genera y copiando y pegando con unas pequeñas modificaciones se realiza en 
forma fácil. 



Javier Rubén Marcuzzi 





De: Reverté Calvet, Gerard 
Enviado: miércoles, 16 de diciembre de 2015 10:28 
Para: 'Carlos Ortega' 
CC: R-help-es@r-project.org 
Asunto: Re: [R-es] Añadir encabezados a un archivo TXT 




Gracia Carlos, ya intenté esta opción que propones pero no funciona. Por lo que 
leí en la ayuda “cat” sólo acepta objetos de R. 



Lo solucioné utilizando readLines() dentro de cat(), pero al tener poca RAM no 
lo pude completar. 





Gerard Reverté 





Gerard Reverté 

Servei d'Estudis i Planificació 

Ajuntament de Mataró 

Telf.: 937 582 100 ext. 2517 

Fax: 937 582 162 

mailto:greve...@ajmataro.cat 




De: Carlos Ortega [ mailto:c...@qualityexcellence.es ] 
Enviado el: miércoles, 16 de diciembre de 2015 13:52 
Para: Reverté Calvet, Gerard 
CC: R-help-es@r-project.org 
Asunto: Re: [R-es] Añadir encabezados a un archivo TXT 





Hola, 


Puedes hacerlo al revés. 


Primero, haces un "cat()" con solo la cabecera dirigida a un fichero con un 
nombre nuevo y luego hacer un cat del fichero de datos, dirigido al fichero 
anterior. Y activada la opción de "append=TRUE"... 





Saludos, 


Carlos Ortega 


www.qualityexcellence.es 





El 16 de diciembre de 2015, 12:32, Reverté Calvet, Gerard < 
greve...@ajmataro.cat > escribió: 


Hola 



Dispongo de varios archivos TXT con datos de 32 variables i de más de 5 
millones de registros. Estos archivos van sin encabezados, y quiero añadir a 
los archivos, en la primera linea, el nombre de las variables, y claro está 
quiero hacerlo des de R. 



Con “cat” consigo añadir una línea los archivos TXT, pero me la añade al final 
y yo quiero que se añada al principio ¿alguna idea? 







Gerard Reverté 




Avís legal/Aviso legal 


La present informació s'envia únicament a la persona a la que va dirigida i pot 
contenir informació privilegiada o de caràcter confidencial. Qualsevol 
modificació, retransmissió, difusió o altre ús d'aquesta informació per 
persones o entitats diferents a la persona a la que va dirigida està prohibida. 
Si vostè l'ha rebut per error, si us plau contacti amb el remitent i esborri el 
missatge de qualsevol ordinador. En el cas que aquest missatge vagi a ser 
contestat per la mateixa via, ha de saber-se que la seva resposta podria ser 
coneguda per tercers a l'entrar a la xarxa. Per això, si el missatge inclou 
contrasenyes, números de targetes de c

Re: [R-es] Añadir encabezados a un archivo TXT

2015-12-16 Por tema Olivier Nuñez
Gerard, 

supongamos que tu fichero de texto ("test.txt") tiene cuatro columnas separadas 
por espacios. 
Si decides llamar estas columnas por ("A","B","C","D"), lo siguiente debería 
funcionar: 

linea0="A B C D" 
fichero <- file("test.txt") 
linea1<- readLines(fichero) 
writeLines(c(linea0,linea1), con=fichero) 
close(fichero) 



- Mensaje original -

De: "Javier Marcuzzi"  
Para: "Reverté Calvet, Gerard" , "Carlos Ortega" 
 
CC: R-help-es@r-project.org 
Enviados: Miércoles, 16 de Diciembre 2015 15:17:45 
Asunto: Re: [R-es] Añadir encabezados a un archivo TXT 



Estimados 



Una idea, si no comprendo mal puede leer los archivos txt desde R, pero estos 
no tienen encabezado, podría colocar esto en un data.frame y usar rbind o 
colnames para escribir los encabezados, luego guardar los data.frame con 
encabezados en un archivo txt. No recuerdo pero creo e Rstudio o Rcmdr tienen 
algo para escribir encabezados al importar los datos, o se puede ver el código 
que genera y copiando y pegando con unas pequeñas modificaciones se realiza en 
forma fácil. 



Javier Rubén Marcuzzi 





De: Reverté Calvet, Gerard 
Enviado: miércoles, 16 de diciembre de 2015 10:28 
Para: 'Carlos Ortega' 
CC: R-help-es@r-project.org 
Asunto: Re: [R-es] Añadir encabezados a un archivo TXT 




Gracia Carlos, ya intenté esta opción que propones pero no funciona. Por lo que 
leí en la ayuda “cat” sólo acepta objetos de R. 



Lo solucioné utilizando readLines() dentro de cat(), pero al tener poca RAM no 
lo pude completar. 





Gerard Reverté 





Gerard Reverté 

Servei d'Estudis i Planificació 

Ajuntament de Mataró 

Telf.: 937 582 100 ext. 2517 

Fax: 937 582 162 

mailto:greve...@ajmataro.cat 





De: Carlos Ortega [mailto:c...@qualityexcellence.es] 
Enviado el: miércoles, 16 de diciembre de 2015 13:52 
Para: Reverté Calvet, Gerard 
CC: R-help-es@r-project.org 
Asunto: Re: [R-es] Añadir encabezados a un archivo TXT 





Hola, 


Puedes hacerlo al revés. 


Primero, haces un "cat()" con solo la cabecera dirigida a un fichero con un 
nombre nuevo y luego hacer un cat del fichero de datos, dirigido al fichero 
anterior. Y activada la opción de "append=TRUE"... 





Saludos, 


Carlos Ortega 


www.qualityexcellence.es 





El 16 de diciembre de 2015, 12:32, Reverté Calvet, Gerard < 
greve...@ajmataro.cat > escribió: 


Hola 



Dispongo de varios archivos TXT con datos de 32 variables i de más de 5 
millones de registros. Estos archivos van sin encabezados, y quiero añadir a 
los archivos, en la primera linea, el nombre de las variables, y claro está 
quiero hacerlo des de R. 



Con “cat” consigo añadir una línea los archivos TXT, pero me la añade al final 
y yo quiero que se añada al principio ¿alguna idea? 







Gerard Reverté 




Avís legal/Aviso legal 


La present informació s'envia únicament a la persona a la que va dirigida i pot 
contenir informació privilegiada o de caràcter confidencial. Qualsevol 
modificació, retransmissió, difusió o altre ús d'aquesta informació per 
persones o entitats diferents a la persona a la que va dirigida està prohibida. 
Si vostè l'ha rebut per error, si us plau contacti amb el remitent i esborri el 
missatge de qualsevol ordinador. En el cas que aquest missatge vagi a ser 
contestat per la mateixa via, ha de saber-se que la seva resposta podria ser 
coneguda per tercers a l'entrar a la xarxa. Per això, si el missatge inclou 
contrasenyes, números de targetes de crèdit o qualsevol altra informació que 
vostè consideri confidencial, seria més segur contestar per una altra via i 
cancel·lar la seva transmissió. L'Ajuntament de Mataró i els seus organismes 
dependents no poden assumir la responsabilitat derivada del fet de què terceres 
persones puguin arribar a conèixer el contingut d'aquest missatge durant la 
seva transmissió. 





La presente información se envía únicamente a la persona a la que va dirigida y 
puede contener información privilegiada o de carácter confidencial. Cualquier 
modificación, retransmisión, difusión u otro uso de esta información por 
persones o entidades diferentes a la persona a la que va dirigida está 
prohibida. Si usted la ha recibido por error, por favor contacte con el 
remitente y borre el mensaje. En el caso de que este mensaje vaya a ser 
contestado por la misma vía, ha de saberse que su respuesta podría ser conocida 
por terceros al entrar en la red. Por este motivo, si el mensaje incluye 
contraseñas, números de tarjetas de crédito o cualquier otra información que 
considere confidencial, sería más seguro contestar por otra vía y cancelar su 
transmisión. El Ayuntamiento de Mataró y sus organismos dependientes no pueden 
asumir la responsabilidad derivada del hecho de que terceras personas puedan 
llegar a conocer el contenido de este mensaje durante su transmisión. 






___ 
R-help-es mailing list 

Re: [R-es] Borrar cada fila 400

2015-11-18 Por tema Olivier Nuñez
Jesús,

una manera eficiente de llevarlo es lo siguiente:

Pon todos tus ficheros csv en un directorio que llamaremos "DIR".
Luego, muevete a este directorio con setwd("ruta de DIR").
Una vez hecho, el siguiente codigo debería funcionarte:

ficheros=list.files(pattern="*.csv") 
temp=lapply(as.list(ficheros),read.csv) #lee la lista de data.frame
index <- function(x) {temp[[x]]$region <- x; temp[[x]]} #función para indexar 
cada data.frame (variable region) 
temp2= lapply(temp,index) #data.frames indexados
datos=do.call(rbind,temp2) #concatena data.frame indexados
tapply(datos$x1,datos$region,mean) #calcula media de la columna "x1" en cada 
data.frame

El codigo puede ser más sencillo si utilizas el paquete "plyr".
Un saludo. Olivier


- Mensaje original -
De: "Javier Rubén Marcuzzi" 
Para: "Jesús Para Fernández" , "Carlos Ortega" 

CC: r-help-es@r-project.org
Enviados: Miércoles, 18 de Noviembre 2015 11:57:11
Asunto: Re: [R-es] Borrar cada fila 400

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:

x1x2 x3xnnueva
21   2332121
27   2139141
24   2230111
..
21   2432   192
27   2139142
..
27   22 3011n

   

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 nueva
region 2,1 (filas 21:40,columnas1:20) para cada valor diferente de nueva
region 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 dataframe
datosmedias<-data.frame(zona1,zona2,)

Estoy seguro que hay una manera más eficiente de conseguirlo. 

Gracias por tdoo
JEsús


Date: Tue, 17 Nov 2015 20:33:49 +0100
Subject: Re: [R-es] Borrar cada fila 400
From: c...@qualityexcellence.es
To: j.para.fernan...@hotmail.com
CC: 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 Ortega
www.qualityexcellence.es

El 17 de noviembre de 2015, 19:29, Jesús Para Fernández 

Re: [R-es] Borrar cada fila 400

2015-11-18 Por tema Olivier Nuñez
Ups!
En el codigo anterior sustituye 

temp2= lapply(temp,index) #data.frames indexados

por 

temp2= lapply(seq_along(temp),index) #data.frames indexados

Un saludo. Olivier

- Mensaje original -
De: "Olivier Nuñez" <onu...@unex.es>
Para: "Javier Rubén Marcuzzi" <javier.ruben.marcu...@gmail.com>
CC: r-help-es@r-project.org
Enviados: Miércoles, 18 de Noviembre 2015 13:15:52
Asunto: Re: [R-es] Borrar cada fila 400

Jesús,

una manera eficiente de llevarlo es lo siguiente:

Pon todos tus ficheros csv en un directorio que llamaremos "DIR".
Luego, muevete a este directorio con setwd("ruta de DIR").
Una vez hecho, el siguiente codigo debería funcionarte:

ficheros=list.files(pattern="*.csv") 
temp=lapply(as.list(ficheros),read.csv) #lee la lista de data.frame
index <- function(x) {temp[[x]]$region <- x; temp[[x]]} #función para indexar 
cada data.frame (variable region) 
temp2= lapply(temp,index) #data.frames indexados
datos=do.call(rbind,temp2) #concatena data.frame indexados
tapply(datos$x1,datos$region,mean) #calcula media de la columna "x1" en cada 
data.frame

El codigo puede ser más sencillo si utilizas el paquete "plyr".
Un saludo. Olivier


- Mensaje original -
De: "Javier Rubén Marcuzzi" <javier.ruben.marcu...@gmail.com>
Para: "Jesús Para Fernández" <j.para.fernan...@hotmail.com>, "Carlos Ortega" 
<c...@qualityexcellence.es>
CC: r-help-es@r-project.org
Enviados: Miércoles, 18 de Noviembre 2015 11:57:11
Asunto: Re: [R-es] Borrar cada fila 400

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:

x1x2 x3xnnueva
21   2332121
27   2139141
24   2230111
..
21   2432   192
27   2139142
..
27   22 3011n

   

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 nueva
region 2,1 (filas 21:40,columnas1:20) para cada valor diferente de nueva
region 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 dataframe
datosmedias<-data.frame(zona1,zona2,)


Re: [R-es] desviacion estandard

2015-11-09 Por tema Olivier Nuñez
Es un problema de robustez. 
La desviación estandar lo es más bien poco (robusta).
Al introducir ceros en tu muestra (incluso no tantos como en el ejemplo de 
Carlos),
la media se deja arrastrar hacia cero y lo valores grandes de tu muestra 
aumentan el valor de sd.
No pasaría eso si utilizase una medida más robusta como la desviación media 
absoluta (mad en R).
Aquí un ejemplo proximo al tuyo:

> set.seed(1234)
> muestra<-rexp(100,5)
> sd(muestra)
[1] 0.1890845
> muestra.ceros <- c(muestra, rep(0, 20))
> sd(muestra.ceros)
[1] 0.1873116
> mad(muestra)
[1] 0.1818975
> mad(muestra.ceros)
[1] 0.1263505

Un saludo. Olivier
 

- Mensaje original -
De: "Carlos J. Gil Bellosta" 
Para: "Rubén Fernández-Casal" 
CC: "r-help-es" 
Enviados: Domingo, 8 de Noviembre 2015 15:04:50
Asunto: Re: [R-es] desviacion estandard

Hola, ¿qué tal?

Lo que te pasa no es tan raro:

set.seed(1234)
muestra <- abs(rnorm(100))
sd(muestra)
#[1] 0.5811866

muestra.ceros <- c(muestra, rep(0, 10))
sd(muestra.ceros)
#[1] 0.03196273

En una muestra de números positivos, añadir un cero (sobre todo si
está lejos de la media) sube la varianza. Si añado otro, posiblemente
también. Pero cuando añado muchísimos ceros, la varianza tiende a
cero.

Si luego los quito, me quedo con la original: ¡la varianza crece a
pesar de que la muestra está "más comprimida"!

Un saludo,

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

P.D.: La desviación típica depende linealmente de la escala.

El día 8 de noviembre de 2015, 12:16, Rubén Fernández-Casal
 escribió:
> La desviación típica no depende de la escala. Si incluyes valores que se
> repiten o que tienen poca variabilidad sería de esperar que pase eso,
> aunque sea en uno de los extremos...
>
> Un saludo, Rubén.
> El 7/11/2015 9:43, "Albert Montolio"  escribió:
>
>> Hola chic@s,
>>
>> tengo una pregunta teórica. Tengo la evolución de una variable en función
>> del tiempo. Hay 145 valores. Los primeros 1 son 0, y los demás son
>> crecientes. Calculo la desviacion estandard con R, contemplando las 145
>> muestras (incluyendo los 0), y las 132 muestras (sin incluir los ceros).
>>
>> Me da que la desviación estandard sin contemplar los 0 es mayor. Como
>> puede ser? no le veo el sentido.
>>
>> Adjunto cálculos en excel. En principio, si quito el mínimo de la serie,
>> los datos tendrian que estar mas comprimidos no?
>>
>> --
>>
>>
>> *Albert Montolio Aguado*
>>
>> ___
>> 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

___
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] desviacion estandard

2015-11-09 Por tema Olivier Nuñez
Perdón Albert,

mi explicación era algo fuera de lugar.
No habia abierto el excel y mi ejemplo no se ajustaba en absoluto al tuyo.
Para que el calculo de una varianza tenga sentido hace falta algo de 
regularidad.
Tu serie no parece muy estacionaria y me temo que este tipo de medida no sean 
en este contexto muy adecuada.
Igual deberías calcular la desviación tipica de las primeras diferencia o 
ajustar un modelo arima (función arima en R)
Asi, si "x" es tu serie entera deberías obtener:

> arima(x,order = c(1,1,0))

Call:
arima(x = x, order = c(1, 1, 0))

Coefficients:
 ar1
  0.9918
s.e.  0.0066

sigma^2 estimated as 31.3:  log likelihood = -454.31,  aic = 912.62


Un saludo. Olivier 

- Mensaje original -
De: "Olivier Nuñez" <onu...@unex.es>
Para: "Carlos J. Gil Bellosta" <c...@datanalytics.com>
CC: "r-help-es" <R-help-es@r-project.org>
Enviados: Lunes, 9 de Noviembre 2015 14:15:34
Asunto: Re: [R-es] desviacion estandard

Es un problema de robustez. 
La desviación estandar lo es más bien poco (robusta).
Al introducir ceros en tu muestra (incluso no tantos como en el ejemplo de 
Carlos),
la media se deja arrastrar hacia cero y lo valores grandes de tu muestra 
aumentan el valor de sd.
No pasaría eso si utilizase una medida más robusta como la desviación media 
absoluta (mad en R).
Aquí un ejemplo proximo al tuyo:

> set.seed(1234)
> muestra<-rexp(100,5)
> sd(muestra)
[1] 0.1890845
> muestra.ceros <- c(muestra, rep(0, 20))
> sd(muestra.ceros)
[1] 0.1873116
> mad(muestra)
[1] 0.1818975
> mad(muestra.ceros)
[1] 0.1263505

Un saludo. Olivier
 

- Mensaje original -
De: "Carlos J. Gil Bellosta" <c...@datanalytics.com>
Para: "Rubén Fernández-Casal" <rubenfca...@gmail.com>
CC: "r-help-es" <R-help-es@r-project.org>
Enviados: Domingo, 8 de Noviembre 2015 15:04:50
Asunto: Re: [R-es] desviacion estandard

Hola, ¿qué tal?

Lo que te pasa no es tan raro:

set.seed(1234)
muestra <- abs(rnorm(100))
sd(muestra)
#[1] 0.5811866

muestra.ceros <- c(muestra, rep(0, 10))
sd(muestra.ceros)
#[1] 0.03196273

En una muestra de números positivos, añadir un cero (sobre todo si
está lejos de la media) sube la varianza. Si añado otro, posiblemente
también. Pero cuando añado muchísimos ceros, la varianza tiende a
cero.

Si luego los quito, me quedo con la original: ¡la varianza crece a
pesar de que la muestra está "más comprimida"!

Un saludo,

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

P.D.: La desviación típica depende linealmente de la escala.

El día 8 de noviembre de 2015, 12:16, Rubén Fernández-Casal
<rubenfca...@gmail.com> escribió:
> La desviación típica no depende de la escala. Si incluyes valores que se
> repiten o que tienen poca variabilidad sería de esperar que pase eso,
> aunque sea en uno de los extremos...
>
> Un saludo, Rubén.
> El 7/11/2015 9:43, "Albert Montolio" <albert.monto...@gmail.com> escribió:
>
>> Hola chic@s,
>>
>> tengo una pregunta teórica. Tengo la evolución de una variable en función
>> del tiempo. Hay 145 valores. Los primeros 1 son 0, y los demás son
>> crecientes. Calculo la desviacion estandard con R, contemplando las 145
>> muestras (incluyendo los 0), y las 132 muestras (sin incluir los ceros).
>>
>> Me da que la desviación estandard sin contemplar los 0 es mayor. Como
>> puede ser? no le veo el sentido.
>>
>> Adjunto cálculos en excel. En principio, si quito el mínimo de la serie,
>> los datos tendrian que estar mas comprimidos no?
>>
>> --
>>
>>
>> *Albert Montolio Aguado*
>>
>> ___
>> 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

___
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

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


Re: [R-es] Extraer elementos diagonales de submatrices

2015-10-29 Por tema Olivier Nuñez
Jorge,

si creas un índice ("dd" en mi código) para las diagonales (las "cohortes" en 
un diagrama de Lexis), 
se puede elaborar un script más o menos elegante para hallar tu output:

require(data.table)
temp=data.table(m)
temp[,row:=1:nrow(m)]
D=melt(temp,id.vars="row",variable.name = "col")
D[,col:=as.numeric(factor(col))]
D[,dd:=(ncol(m)-col)+row] #índice de la diagonal
DD=subset(DD,dd>=ncol(m)) 
setkey(D,dd,row)
DD[,suma:=cumsum(abs(value)),by=dd]
DD[,l:=length(unique(suma)),by=dd]
dmax=max(DD$dd)
res=DD[,.(saltos=unique(dd+l)),by=dd]
diags=ncol(m);i=1
while(res[dd==diags[i],saltos]
Para: "Jorge I Velez" 
CC: "R-help-es" 
Enviados: Jueves, 29 de Octubre 2015 12:05:52
Asunto: Re: [R-es] Extraer elementos diagonales de submatrices

El código que me olvide pegar

input
m <- structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 
 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
 3, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 0, 
 0, 0, 0, 5, 5, 5), .Dim = c(10L, 5L))
m

## output
output <- c(1:3, 1:5, 1:2)
output

nfilas <- nrow(m)
while(nfilas > 0) {
  diagonal <- diag(m)
  elementosDeseadosDiagonal <- diagonal[diagonal>0]
  GuardoElementosDeseadosDiagonal <- rbind(elementosDeseadosDiagonal)
  PuntoDeCorte <- length(elementosDeseadosDiagonal)
  print(paste("Corte ", PuntoDeCorte,sep=""))
  while(PuntoDeCorte > 0)
  {
if(PuntoDeCorte == 0) break;
print((m))
m <- m[-1,]
PuntoDeCorte <- PuntoDeCorte-1
  }
  
  nfilas <- nfilas-1;
  print(paste("n filas ", nfilas, sep = ""))
  print(elementosDeseadosDiagonal)
  print(GuardoElementosDeseadosDiagonal)
}
GuardoElementosDeseadosDiagonal

Javier Rubén Marcuzzi
Técnico en Industrias Lácteas
Veterinario



De: Javier Rubén Marcuzzi
Enviado: miércoles, 28 de octubre de 2015 17:22
Para: Jorge I Velez
CC: R-help-es
Asunto: RE: [R-es] Extraer elementos diagonales de submatrices


Bien, estoy pensando, diagonal, elementos diagonal mayor que 0, cantidad de 
elementos en diagonal mayor que cero, borrar esa cantidad de filas de la 
matriz, todo esto dentro de un bucle, lógicamente guardo (rbind cantidad de 
elementos en diagonal mayor que cero) .

Javier Rubén Marcuzzi
Técnico en Industrias Lácteas
Veterinario



De: Jorge I Velez
Enviado: miércoles, 28 de octubre de 2015 16:40
Para: Javier Rubén Marcuzzi
CC: R-help-es
Asunto: Re: [R-es] Extraer elementos diagonales de submatrices


Estimado Javier,

Gracias por tu mensaje.

No, lo unico que requiero es la lista de números (i1, 2, 3, 1, 2, 3, 4, 5, 1, 
2).

Saludos cordiales,
Jorge.-




2015-10-28 14:35 GMT-05:00 Javier Rubén Marcuzzi 
:
Estimado Jorge I Velez
 
No comprendo un punto, dices que deseas construir sub matrices y extraer 
elementos de sub matrices, en el ejemplo en output no hay sub matrices (tres 
matrices como resultado) sino una cadena de números. ¿Cómo necesitas el 
resultado?, ¿Cómo se ve en el ejemplo?, ¿Cómo matrices de matrices?
 
Ejemplo
123
12345
12
 
O en una forma
1231234512
 
¿Hay que dejar algo (índice) como para que accedas a algo reconocido o 
especificado, ej, segundo valor de la segunda sub matriz (2,2), ¿o con tener la 
lista de números le es útil?
 
Javier Rubén Marcuzzi
Técnico en Industrias Lácteas
Veterinario
 
 

De: Jorge I Velez
Enviado: miércoles, 28 de octubre de 2015 12:15
Para: R-help-es
Asunto: [R-es] Extraer elementos diagonales de submatrices
 
 
Buenos dias a todos,
 
Quisiera extraer algunas entradas de una matrix "m" teniendo en cuenta algunas 
restricciones.  El siguiente ejemplo ilustra la situacion:
 
## input
m <- structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 
2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 0, 
0, 0, 0, 5, 5, 5), .Dim = c(10L, 5L))
m
 
## output
output <- c(1:3, 1:5, 1:2)
output
 
Si el numero de filas es r y el numero de columnas k, la idea es construir 
submatrices de dimension k x k y extraer los elementos diagonales NO ceros.  
Ahora, en caso de encontrar un cero, debe desplazarse a la siguiente fila, y 
construir una nueva matriz k x k.  Graficamente esto seria:
 
 
Observe que en este caso, r = 10 y k = 5.  En la primera submatriz, la diagonal 
tiene los valores 1, 2, 3, 0, 0, de los cuales SOLO deben seleccionarse 1, 2 y 
3 (en lila).  El primer cero se encuentra en la posicion [1, 4], asi que la 
siguiente submatriz debe construirse COMENZANDO en la fila 4, columna 1.
 
A partir de esta segunda submatriz se obtienen los elements 1, 2, 3, 4 y 5, que 
corresponden a su 

Re: [R-es] Extraer elementos diagonales de submatrices

2015-10-29 Por tema Olivier Nuñez
Bueno, habia un pequeño bug. Aproveché para simplificar el codigo:

require(data.table)
temp=data.table(m)
temp[,row:=1:nrow(m)]
D=melt(temp,id.vars="row",variable.name = "col")
D[,col:=as.numeric(factor(col))]
D[,dd:=(ncol(m)-col)+row] #determina la diagonal
DD=subset(D,dd>=ncol(m)) 
setkey(D,dd,row)
res=DD[,.(saltos=dd-1+min(which(value==0),ncol(m)+1)),by=dd]
diags=ncol(m);i=1
dmax=max(DD$dd)
while(res[dd==diags[i],saltos]<dmax) {
diags=c(diags,res[dd==diags[i],saltos])
i=i+1
}
DD[dd %in% diags & !value==0, .(output=value),by=dd] 


dd output
 1:  5  1
 2:  5  2
 3:  5  3
 4:  8  1
 5:  8  2
 6:  8  3
 7:  8  4
 8:  8  5
 9: 13  1
10: 13  2


Un saludo. Olivier

- Mensaje original -
De: "Olivier Nuñez" <onu...@unex.es>
Para: "Javier Rubén Marcuzzi" <javier.ruben.marcu...@gmail.com>
CC: "R-help-es" <r-help-es@r-project.org>
Enviados: Jueves, 29 de Octubre 2015 14:52:47
Asunto: Re: [R-es] Extraer elementos diagonales de submatrices

Jorge,

si creas un índice ("dd" en mi código) para las diagonales (las "cohortes" en 
un diagrama de Lexis), 
se puede elaborar un script más o menos elegante para hallar tu output:

require(data.table)
temp=data.table(m)
temp[,row:=1:nrow(m)]
D=melt(temp,id.vars="row",variable.name = "col")
D[,col:=as.numeric(factor(col))]
D[,dd:=(ncol(m)-col)+row] #índice de la diagonal
DD=subset(DD,dd>=ncol(m)) 
setkey(D,dd,row)
DD[,suma:=cumsum(abs(value)),by=dd]
DD[,l:=length(unique(suma)),by=dd]
dmax=max(DD$dd)
res=DD[,.(saltos=unique(dd+l)),by=dd]
diags=ncol(m);i=1
while(res[dd==diags[i],saltos]<dmax) {
diags=c(diags,res[dd==diags[i],saltos])
i=i+1
}
DD[dd %in% diags & !value==0, .(output=value),by=dd] 

dd output
 1:  5  1
 2:  5  2
 3:  5  3
 4:  8  1
 5:  8  2
 6:  8  3
 7:  8  4
 8:  8  5
 9: 13  1
10: 13  2

Un saludo. Olivier

- Mensaje original -
De: "Javier Rubén Marcuzzi" <javier.ruben.marcu...@gmail.com>
Para: "Jorge I Velez" <jorgeivanve...@gmail.com>
CC: "R-help-es" <r-help-es@r-project.org>
Enviados: Jueves, 29 de Octubre 2015 12:05:52
Asunto: Re: [R-es] Extraer elementos diagonales de submatrices

El código que me olvide pegar

input
m <- structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 
 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
 3, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 0, 0, 0, 0, 
 0, 0, 0, 5, 5, 5), .Dim = c(10L, 5L))
m

## output
output <- c(1:3, 1:5, 1:2)
output

nfilas <- nrow(m)
while(nfilas > 0) {
  diagonal <- diag(m)
  elementosDeseadosDiagonal <- diagonal[diagonal>0]
  GuardoElementosDeseadosDiagonal <- rbind(elementosDeseadosDiagonal)
  PuntoDeCorte <- length(elementosDeseadosDiagonal)
  print(paste("Corte ", PuntoDeCorte,sep=""))
  while(PuntoDeCorte > 0)
  {
if(PuntoDeCorte == 0) break;
print((m))
m <- m[-1,]
PuntoDeCorte <- PuntoDeCorte-1
  }
  
  nfilas <- nfilas-1;
  print(paste("n filas ", nfilas, sep = ""))
  print(elementosDeseadosDiagonal)
  print(GuardoElementosDeseadosDiagonal)
}
GuardoElementosDeseadosDiagonal

Javier Rubén Marcuzzi
Técnico en Industrias Lácteas
Veterinario



De: Javier Rubén Marcuzzi
Enviado: miércoles, 28 de octubre de 2015 17:22
Para: Jorge I Velez
CC: R-help-es
Asunto: RE: [R-es] Extraer elementos diagonales de submatrices


Bien, estoy pensando, diagonal, elementos diagonal mayor que 0, cantidad de 
elementos en diagonal mayor que cero, borrar esa cantidad de filas de la 
matriz, todo esto dentro de un bucle, lógicamente guardo (rbind cantidad de 
elementos en diagonal mayor que cero) .

Javier Rubén Marcuzzi
Técnico en Industrias Lácteas
Veterinario



De: Jorge I Velez
Enviado: miércoles, 28 de octubre de 2015 16:40
Para: Javier Rubén Marcuzzi
CC: R-help-es
Asunto: Re: [R-es] Extraer elementos diagonales de submatrices


Estimado Javier,

Gracias por tu mensaje.

No, lo unico que requiero es la lista de números (i1, 2, 3, 1, 2, 3, 4, 5, 1, 
2).

Saludos cordiales,
Jorge.-




2015-10-28 14:35 GMT-05:00 Javier Rubén Marcuzzi 
<javier.ruben.marcu...@gmail.com>:
Estimado Jorge I Velez
 
No comprendo un punto, dices que deseas construir sub matrices y extraer 
elementos de sub matrices, en el ejemplo en output no hay sub matrices (tres 
matrices como resultado) sino una cadena de números. ¿Cómo necesitas el 
resultado?, ¿Cómo se ve en el ejemplo?, ¿Cómo matrices de matrices?
 
Ejemplo
123
12345
12
 
O en una forma
1231234512
 
¿Hay que dejar algo (índice) como para que accedas a algo reconocido o 
especificado, ej, segundo valor de la segunda sub matriz (2,2), ¿o con tener la 
lista de números le es útil?
 
Javier Rubén Marcuzzi
Técnico en Industrias Lá

Re: [R-es] resolución de ecuación

2015-10-23 Por tema Olivier Nuñez
José, 

varios comentarios: 
1) exp(1)^a =exp(a) 
2) solve es para ecuaciones lineales. La tuya es nolineal 
3) ¿cuales el rango de valores posibles de z? 
4) Prueba la función uniroot.all del paquete "rootSolve". 

Un saludo. Olivier 


- Mensaje original -

De: "José Miguel Contreras García"  
Para: "r-help-es"  
Enviados: Viernes, 23 de Octubre 2015 10:58:06 
Asunto: [R-es] resolución de ecuación 

Hola a todos 

Tengo una duda existencial, como siempre, jejeje 

Quiero resolver una ecuación (F=0) que depende de un parámetro z, pero este 
viene en función de una suma que depende de un vector de tiempos ti (1:25) y 
unos valores de un vector x 

Lo he intentado resolver mediante una función para luego utilizar solve, pero 
me he atrancado. 

La función es esta: 

ti<-1:25 
x<-sample(1:10, size=25, replace=T) 
beta<-0.1 

F<-function(z) { 
suma<-0 
for(i in 2:n){ 
sum<-sum+exp(1)^(-beta*ti[i])/(z-beta)^2*(log(x[i])-exp(1)^(-beta)*log(x[i-1]))*(exp(1)^(ti[i]*(beta-z))*(1-ti[i]*(beta-z))-exp(1)^(-ti[i-1]*(beta-z))*(1-ti[i-1]*(beta-z)))
 
} 
} 

Quiero calcular el valor de z para que la suma valga cero. ¿He metido mucho la 
pata? 

Gracias de antemano 

Saludos 
___ 
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] potencia fracional de un número negativo

2015-10-15 Por tema Olivier Nuñez
De manera más sencilla, si queremos calcular las soluciones de x^q=a ,
donde q es entero, lo siguiente debería funcionar:

sq<-function(a,q){
x=as.complex(a)
theta=(2*pi*(1:q)+Arg(x))/q
complex(mod=Mod(x)^(1/q),arg=theta)
}

> sq(-8,3)
[1] -2+0.00i  1-1.732051i  1+1.732051i
> sq(-.5,5)
[1] -0.2690149+0.8279428i -0.8705506+0.000i -0.2690149-0.8279428i
[4]  0.7042902-0.5116968i  0.7042902+0.5116968i
> 

Un saludo. Olivier

- Mensaje original -
De: "Olivier Nuñez" <onu...@unex.es>
Para: "José Trujillo Carmona" <truji...@unex.es>
CC: "r-help-es" <r-help-es@r-project.org>
Enviados: Jueves, 15 de Octubre 2015 16:19:18
Asunto: Re: [R-es] potencia fracional de un número negativo

Ups, José tiene razón. 
Se puede tambien utilizar polyroot:

para (-0.5)^(1/5)
> polyroot(c(.5, 0, 0, 0, 0, 1))
[1]  0.7042902+0.5116968i -0.2690149+0.8279428i -0.2690149-0.8279428i
[4]  0.7042902-0.5116968i -0.8705506+0.000i

para (-8)^(1/3)
> polyroot(c(8, 0, 0, 1))
[1]  1+1.732051i -2+0.00i  1-1.732051i

- Mensaje original -
De: "José Trujillo Carmona" <truji...@unex.es>
Para: "r-help-es" <r-help-es@r-project.org>
Enviados: Jueves, 15 de Octubre 2015 11:27:20
Asunto: Re: [R-es] potencia fracional de un número negativo

El 15/10/15 a las 11:10, Salvador Castillo Raya escribió:
> No s� si he entendido bien la pregunta, pero creo que lo que quieres obtener 
> es esto:
> (as.complex(-0.5)^(1/5))
> Saludos,Salva

Tampoco funciona:

 > (as.complex(-8)^(1/3))
[1] 1+1.732051i

Solo da una de las raices.

>> To:r-help-es@r-project.org
>> From:canadasre...@gmail.com
>> Date: Thu, 15 Oct 2015 10:45:10 +0200
>> Subject: Re: [R-es] potencia fracional de un n�mero negativo
>>
>> Hola.
>> No s� si va por aqu�, pero prueba a quitar el par�ntesis a (-0.5)
>>
>> Ejemplo
>>
>>   > -0.03125^(1/5)
>> [1] -0.5
>>   >
>>
>> Y se ve qeu -0.5^(5) es -0.03125
>>
>> El 15/10/15 a las 06:02, Alex J. Zambrano escribi�:
>>> Hola a tod@s.
>>>
>>> Realizando el calculo de encontrar la ra�z quinta de -0.5, la cual d�gito
>>> de la siguiente manera
>>>
>>> (-0.5)^(1/5)
>>>
>>> El resultado que me arroja R es NaN.
>>>
>>> Averiguando un poco entre las ayuda de las funciones aritm�ticas encuentro
>>> el siguiente comentario
>>>
>>> Users are sometimes surprised by the value returned, for example why
>>> (-8)^(1/3) is NaN. For double inputs, R makes use of IEC 60559 arithmetic
>>> on all platforms, together with the C system function pow for the ^
>>> operator. The relevant standards define the result in many corner cases. In
>>> particular, the result in the example above is mandated by the C99
>>> standard. On many Unix-alike systems the command man pow gives details of
>>> the values in a large number of corner cases.
>>>
>>> �Qu� opciones puedo utilizar para poder encontrar el resultado?
>>>
>>> Agradezco de antemano la colaboraci�n.
>>>
>>> Cordial saludo.
>>>
>>>
>> ___
>> 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


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

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


Re: [R-es] potencia fracional de un número negativo

2015-10-15 Por tema Olivier Nuñez
Ups, José tiene razón. 
Se puede tambien utilizar polyroot:

para (-0.5)^(1/5)
> polyroot(c(.5, 0, 0, 0, 0, 1))
[1]  0.7042902+0.5116968i -0.2690149+0.8279428i -0.2690149-0.8279428i
[4]  0.7042902-0.5116968i -0.8705506+0.000i

para (-8)^(1/3)
> polyroot(c(8, 0, 0, 1))
[1]  1+1.732051i -2+0.00i  1-1.732051i

- Mensaje original -
De: "José Trujillo Carmona" 
Para: "r-help-es" 
Enviados: Jueves, 15 de Octubre 2015 11:27:20
Asunto: Re: [R-es] potencia fracional de un número negativo

El 15/10/15 a las 11:10, Salvador Castillo Raya escribió:
> No s� si he entendido bien la pregunta, pero creo que lo que quieres obtener 
> es esto:
> (as.complex(-0.5)^(1/5))
> Saludos,Salva

Tampoco funciona:

 > (as.complex(-8)^(1/3))
[1] 1+1.732051i

Solo da una de las raices.

>> To:r-help-es@r-project.org
>> From:canadasre...@gmail.com
>> Date: Thu, 15 Oct 2015 10:45:10 +0200
>> Subject: Re: [R-es] potencia fracional de un n�mero negativo
>>
>> Hola.
>> No s� si va por aqu�, pero prueba a quitar el par�ntesis a (-0.5)
>>
>> Ejemplo
>>
>>   > -0.03125^(1/5)
>> [1] -0.5
>>   >
>>
>> Y se ve qeu -0.5^(5) es -0.03125
>>
>> El 15/10/15 a las 06:02, Alex J. Zambrano escribi�:
>>> Hola a tod@s.
>>>
>>> Realizando el calculo de encontrar la ra�z quinta de -0.5, la cual d�gito
>>> de la siguiente manera
>>>
>>> (-0.5)^(1/5)
>>>
>>> El resultado que me arroja R es NaN.
>>>
>>> Averiguando un poco entre las ayuda de las funciones aritm�ticas encuentro
>>> el siguiente comentario
>>>
>>> Users are sometimes surprised by the value returned, for example why
>>> (-8)^(1/3) is NaN. For double inputs, R makes use of IEC 60559 arithmetic
>>> on all platforms, together with the C system function pow for the ^
>>> operator. The relevant standards define the result in many corner cases. In
>>> particular, the result in the example above is mandated by the C99
>>> standard. On many Unix-alike systems the command man pow gives details of
>>> the values in a large number of corner cases.
>>>
>>> �Qu� opciones puedo utilizar para poder encontrar el resultado?
>>>
>>> Agradezco de antemano la colaboraci�n.
>>>
>>> Cordial saludo.
>>>
>>>
>> ___
>> 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


[[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] potencia fracional de un número negativo

2015-10-15 Por tema Olivier Nuñez

as.complex(-0.5)^(1/5)

Un saludo. Olivier

- Mensaje original -
De: "Alex J. Zambrano" 
Para: r-help-es@r-project.org
Enviados: Jueves, 15 de Octubre 2015 6:02:44
Asunto: [R-es] potencia fracional de un número negativo

Hola a tod@s.

Realizando el calculo de encontrar la raíz quinta de -0.5, la cual dígito
de la siguiente manera

(-0.5)^(1/5)

El resultado que me arroja R es NaN.

Averiguando un poco entre las ayuda de las funciones aritméticas encuentro
el siguiente comentario

Users are sometimes surprised by the value returned, for example why
(-8)^(1/3) is NaN. For double inputs, R makes use of IEC 60559 arithmetic
on all platforms, together with the C system function pow for the ^
operator. The relevant standards define the result in many corner cases. In
particular, the result in the example above is mandated by the C99
standard. On many Unix-alike systems the command man pow gives details of
the values in a large number of corner cases.

¿Qué opciones puedo utilizar para poder encontrar el resultado?

Agradezco de antemano la colaboración.

Cordial saludo.


-- 
Alex Johann Zambrano Carbonell
http://experienceinstatistics.blogspot.com/

[[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] Tranformar falsas variables char en numéricas

2015-10-08 Por tema Olivier Nuñez
> class(d$fake_char)<-"numeric"
> str(d)
'data.frame':   5 obs. of  5 variables:
 $ char : chr  "a" "b" "c" "d" ...
 $ fake_char: num  1 2 3 4 5
 $ fac  : Factor w/ 5 levels "1","2","3","4",..: 1 2 3 4 5
 $ char_fac : Factor w/ 5 levels "a","b","c","d",..: 1 2 3 4 5
 $ num  : int  1 2 3 4 5

Un saludo. Olivier

- Mensaje original -
De: "Christian Bravo Sánchez" 
Para: r-help-es@r-project.org
Enviados: Jueves, 8 de Octubre 2015 9:29:07
Asunto: [R-es] Tranformar falsas variables char en numéricas

Hola usuarios de R,

Antes de nada presentarme, soy nuevo en R (antiguo... y bueno actual
usuario de SAS), llevo menos de un mes y estoy intentando empezar con
pequeñas cosas.

Hay un tema que me está llevando bastante tiempo y por más que investigo y
hago pruebas no logro saber como se hace; veréis tengo un data.frame el
cuál tiene bastante variables y todas ellas clasificadas como char, sin
embargo no todas son char sino que existen variables númericas. Dicho esto,
lo que necesito de algún modo es recorrer todas las variables y saber cual
de ellas son numéricas (y por supuesto transformarlas).

Adjunto un ejemplo reproducible:

d <- data.frame(char = letters[1:5],
fake_char = as.character(1:5),
fac = factor(1:5),
char_fac = factor(letters[1:5]),
num = 1:5, stringsAsFactors = FALSE)
d
  char fake_char fac char_fac num
1a 1   1a   1
2b 2   2b   2
3c 3   3c   3
4d 4   4d   4
5e 5   5e   5
> str(d)
'data.frame':   5 obs. of  5 variables:
 $ char : chr  "a" "b" "c" "d" ...
 $ fake_char: chr  "1" "2" "3" "4" ...
 $ fac  : Factor w/ 5 levels "1","2","3","4",..: 1 2 3 4 5
 $ char_fac : Factor w/ 5 levels "a","b","c","d",..: 1 2 3 4 5
 $ num  : int  1 2 3 4 5

Como véis la variable fake_char es numérica. Por favor tened en cuenta que
trabajo con muchas variables, la resolución (he aquí la dificultad para mí)
debería recorrer todo el data.frame de manera automática.

Muchisimas gracias de antemano.

Saludos.

[[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] Error al agrupar datos por una variable en data.table

2015-09-28 Por tema Olivier Nuñez
No estoy seguro de entender, pero prueba:

> require(data.table)
> DT=data.table(padres=c(1,1,1,2,2), indiviudos=1:5)
> DT
   padres indiviudos
1:  1  1
2:  1  2
3:  1  3
4:  2  4
5:  2  5
> DT[,.(count=.N),by=padres]
   padres count
1:  1 3
2:  2 2
> 


algunos_padres[,count := .N, by=padres]

- Mensaje original -
De: "Rodrigo López Correa" 
Para: "R-help-es" 
Enviados: Viernes, 25 de Septiembre 2015 15:48:39
Asunto: [R-es] Error al agrupar datos por una variable en data.table

Hola buenos días, estoy teniendo problemas cuando quiero agrupar los
registros de una tabla por una columna específica en data.table.



*Mi objetivo es agrupar todos los hijos que pertenecen a solo 2 padres
determinados.*



   - Por eso me traje todos sus hijos con subset desde una tabla.





algunos_padres<-data.table(subset(mydata, padres %in% c("0002480",
"0001878") ,

  select=(c(individuo,padres)),key="individuo"))




   - Para chequear que me haya traído solamente esos padres, busqué si
   tenía el padre “0001458”:



algunos_padres[padres=="0001458",]




   - El resultado fue el esperado, no estaba en la tabla algunos_padres:


Empty data.table (0 rows) of 7 cols #correct no era esperado




   - Sin embargo, acá viene mi problema, cuando le pido contabilizar el
   número de hijos obtenidos por  cada uno de esos 2 padres, el resultado
   trajo también animales que no deberían estar. Por ejemplo, el padre 0001458.



total_hijos<-algunos_padres[, as.data.table(table(padres))]

head (total_hijos)



padres N

1: 0001458 0

2: 0001512 0

3: 0001518 0

4: 0001519 0

….




   - Intenté hacerlo de otra manera y obtuve igual resultado:



   xtabs(~padres,data=algunos_padres)



   padres

   0001458 0001512 0001518 0001519 0001683 0001795 0001803
0001878

   0   00   0
 00   0   77 ….






   - En definitiva, intenté hacerlo de varias maneras y siempre con el
   mismo resultado, me trae en la estadística  padres que no formaron parte de
   mi subset inicial en algunos_padres, por más que después aparezcan con 0
   hijo en el resultado.






   - Por último probé:



algunos_padres[,count := uniqueN(individuo), by=padres]



pero aquí no me trajo como quiero en 2 lineas, el total de hijos de cada
uno de esos 2 padres. Quizás es redundante poner uniqueN, ya que el campo
individuo tiene registros únicos.







¿Me podrían ayudar? Muchas gracias!



Rodrigo.

[[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] Operaciones entre conjuntos

2015-07-16 Por tema Olivier Nuñez
Estas comparando listas, prueba más bien 

a[,yld:=mapply(setequal,y,z)]

Un saludo. Olivier


- Mensaje original -
De: Patricio Fuenmayor Viteri patricio.fuenma...@outlook.com
Para: r-help-es r-help-es@r-project.org
Enviados: Jueves, 16 de Julio 2015 2:48:35
Asunto: [R-es] Operaciones entre conjuntos

Hola a todos...Estoy tratando de hacer un trabajo de comparacion de conjuntos y 
no entiendo que pasa con los resultados.Me explico. Tengo una columna donde se 
tiene el nombre de una persona, est� ordenado APELLIDOS - NOMBRESa continuaci�n 
tengo el el nombre de la misma persona, pero ordenado NOMBRES - APELLIDOS.El 
proceso debe identificar que las 2 columnas son iguales. Estoy usando 
operaciones entre conjuntos y estructuras data.tableNo entiendo, porque 
haciendo en data.table la comparacion me sale FALSA, es decir no son iguales, 
pero si hago la comparaci�n aparte, sale VERDADEROAdjunto el c�digo... gracias 
por su apoyo...
require(data.table)a - data.table(  x = 1:2,  y = 
list(c(ANDRES,GERARDO,CABRERA,GUAMAN),   
c(MONTALVAN,VERA,JORGE,LEONARDO)),  z = 
list(c(CABRERA,GUAMAN,GERARDO,ANDRES),   
c(JORGE,MONTALVAN,VERA)))
a[,:=(vld=setequal(y,z)),by=x]
setequal(c(ANDRES,GERARDO,CABRERA,GUAMAN),c(CABRERA,GUAMAN,GERARDO,ANDRES))
  
[[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] Loop for: mostrar el nombre de la variables

2015-06-30 Por tema Olivier Nuñez


Tengo dos problemas:

1. En:
  print (c(Var Num: , mean(XVARNUM)))
   no consigo que imprima el nombre de la variable ED después de
   Var Num:. En Internet parece que algunos sugieren utilizar:
   deparse(substitute(name(XVARNUM
   pero no me funciona.

Utiliza cat:

 x=rnorm(100)
 cat(Media,mean(x),\n)
Media -0.1058831 


2. El resultando de mostrar las frecuencias de la variable SE es:

[1] Var factor: 
  XVARNUM Freq cumFreq relative
1   H5   5  0.5
2   M5  10  0.5

Como podría substituir XVARNUM por el nombre de la variable analizada (SE)?

 XVARNUM=rpois(100, 5)
 XOUT - as.data.frame(table(XVARNUM))
 XOUT - transform(XOUT, cumFreq = cumsum(Freq), relative = prop.table(Freq))
 names(XOUT)[1]=SE
 print(XOUT)
   SE Freq cumFreq relative
1   01   1 0.01
2   11   2 0.01
3   2   12  14 0.12
4   3   11  25 0.11
5   4   14  39 0.14
6   5   21  60 0.21
7   69  69 0.09
8   7   16  85 0.16
9   86  91 0.06
10  93  94 0.03
11 103  97 0.03
12 111  98 0.01
13 121  99 0.01
14 131 100 0.01
 

Un saludo. Olivier
___
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] Loop for: mostrar el nombre de la variables

2015-06-30 Por tema Olivier Nuñez
Bueno, te contesté rápido sin analizar mucho qué duda tenías con la gramática 
de R.
He modificado tu función:
DES = function(XDADES)
  {
with(XDADES,
  for (XVARNUM in names(XDADES))
   {  
  if(is.numeric(get(XVARNUM))) {
cat(Var Num: ,XVARNUM,mean(get(XVARNUM)),\n)
}
  else if(is.factor(get(XVARNUM)))
{
cat(Var factor: ,XVARNUM,\n)
XOUT - as.data.frame(table(get(XVARNUM)))
XOUT - transform(XOUT, cumFreq = cumsum(Freq), 
relative = prop.table(Freq))
print(XOUT)
}
  else
{
cat (Var desc)
} 
  }   
)
  }

Ahora da:

 DES(XDADES=TBL)
Var factor:  SE 
  Var1 Freq cumFreq relative
1H7   7  0.7
2M3  10  0.3
Var Num:  ED 50.04875 

Un saludo. Olivier

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


Re: [R-es] Loop for: mostrar el nombre de la variables

2015-06-30 Por tema Olivier Nuñez
Un opción más elegante:

DES = function(x)
  {
res=NA
if(is.numeric(x)) res=mean(x)
else if(is.factor(x))
{
res - as.data.frame(table(x))
res - transform(res, cumFreq = cumsum(Freq), relative 
= prop.table(Freq))
}
return(res) 
  }

 lapply(TBL,DES)
$SE
  x Freq cumFreq relative
1 H8   8  0.8
2 M2  10  0.2

$ED
[1] 56.3203



Un saludo. Olivier

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


Re: [R-es] Sobre data.table

2015-06-19 Por tema Olivier Nuñez
Si quieres mantener el formato data.table en la salida, mejor utilizar lapply: 


 DT[,lapply(.SD,function(x) sum(is.na(x)))] 
X1 X2 
1: 2 3 


- Mensaje original -

De: MªLuz Morales mlzm...@gmail.com 
Para: Olivier Nuñez onu...@unex.es 
Enviados: Viernes, 19 de Junio 2015 12:40:09 
Asunto: Re: [R-es] Sobre data.table 

Muchas gracias!! 

El 19 de junio de 2015, 12:29, Olivier Nuñez  onu...@unex.es  escribió: 


 DT=data.table(X1=c(NA,NA,1,1,1),X2=c(1,1,NA,NA,NA)) 
 DT[,apply(.SD,2,function(x) sum( is.na (x)))] 
X1 X2 
2 3 

Un saludo. Olivier 

- Mensaje original - 
De: MªLuz Morales  mlzm...@gmail.com  
Para: r-help-es  r-help-es@r-project.org  
Enviados: Viernes, 19 de Junio 2015 12:08:42 
Asunto: [R-es] Sobre data.table 

Hola, 

quisiera determinar el número de filas distintas del valor NA para cada una 
de las columnas de un data.table. Probablemente se puede hacer de una forma 
muy compacta, pero no consigo hacerlo. 

Gracias 
Un saludo 

MªLuz 

[[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] Sobre data.table

2015-06-19 Por tema Olivier Nuñez
 DT=data.table(X1=c(NA,NA,1,1,1),X2=c(1,1,NA,NA,NA))
 DT[,apply(.SD,2,function(x) sum(is.na(x)))]
X1 X2 
 2  3 

Un saludo. Olivier

- Mensaje original -
De: MªLuz Morales mlzm...@gmail.com
Para: r-help-es r-help-es@r-project.org
Enviados: Viernes, 19 de Junio 2015 12:08:42
Asunto: [R-es] Sobre data.table

Hola,

quisiera determinar el número de filas distintas del valor NA para cada una
de las columnas de un data.table. Probablemente se puede hacer de una forma
muy compacta, pero no consigo hacerlo.

Gracias
Un saludo

MªLuz

[[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] Duda glmer

2015-06-10 Por tema Olivier Nuñez
Guillermo,

me temo que en tu simulación, el enfoque multinivel carezca de sentido.
Ten en cuenta que en este tipo de modelo la agrupación de los datos, es decir 
el segundo nivel en la jerarquía,
no puede ser en sólo 2 categorías o grupos, sino en un numero considerable de 
grupos que justifique el análisis de la variabilidad entre dichos grupos.
Prueba más bien la siguiente simulación:


set.seed(100) 
beta_0 - -0.9
beta_1 - 0.02
sigma - 1
q=200; n=50
re - rnorm(q)*sigma # efectos aleatorios asociado al grupo
u - rep(re,each=n)
x - floor(runif(n*q,min=0,max=10))
p - exp( beta_0 + beta_1*x + u) / (1+ exp( beta_0 + beta_1*x + u)) 
y -rbinom(n*q,1,p)
datos=data.frame(y,u,grupo=rep(1:q,each=n))

fit=glmer(y~x+(1|grupo),data=datos,family=binomial)
summary(fit)


Generalized linear mixed model fit by maximum likelihood (Laplace
  Approximation) [glmerMod]
 Family: binomial  ( logit )
Formula: y ~ x + (1 | grupo)
   Data: datos

 AIC  BIC   logLik deviance df.resid 
 11603.3  11625.0  -5798.7  11597.3 9997 

Scaled residuals: 
Min  1Q  Median  3Q Max 
-2.8102 -0.6685 -0.4591  0.8800  4.0097 

Random effects:
 Groups NameVariance Std.Dev.
 grupo  (Intercept) 0.9758   0.9878  
Number of obs: 1, groups:  grupo, 200

Fixed effects:
 Estimate Std. Error z value Pr(|z|)
(Intercept) -0.911938   0.082754 -11.020   2e-16 ***
x0.027207   0.008101   3.359 0.000783 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1



- Mensaje original -
De: Guillermo Vinue guillermo.vi...@uv.es
Para: r-help-es@r-project.org
Enviados: Miércoles, 10 de Junio 2015 13:10:26
Asunto: [R-es] Duda glmer

Hola,

Tengo una base de datos con estructura jerárquica en la que quiero
clasificar observaciones en distintas categorías.

En el caso más simple, tengo una variable con dos categorías (variable
Y1) y dentro de cada una de ellas hay otras dos categorías (variable
Y2). Además tengo una variable explicativa cuantitativa discreta X.

El banco de datos sería de este tipo:

X Y1 Y2
5  0  1
9  0  0
2  0  1
8  0  0
9  0  0
6  0  0
4  1  0
5  1  1
5  1  1
6  1  1
0  1  1
6  1  0

El enfoque estadístico que quiero plantear es un modelo lineal
generalizado mixto con efectos aletorios para tener en cuenta esta
estructura jerárquica o multinivel. 

Para analizar si este enfoque es adecuado he simulado unos datos. En
primer lugar, trato de clasificar las observaciones en las categorías de
Y1 mediante un glm y obtengo estimadores de los coeficientes que son muy
similares a los valores simulados, como era esperable.

Sin embargo, cuando trato de utilizar un glmer con un intercepto
aleatorio y pendientes fijas para tratar de distinguir entre categorías,
obtengo estimadores muy alejados de los valores simulados. 

He leído mucha de la bibliografía específica (por ejemplo, los capítulos
relacionados con los glmer de los libros de Bates o Goldstein) y he
buscado por internet pero no logro encontrar el error en mi procedimiento.

Adjunto el código de la simulación que llevo a cabo en R por si alguien
me pudiera hacer alguna indicación.

Muchas gracias de antemano.

Un saludo,

Guillermo

___
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] predict nlme

2015-05-02 Por tema Olivier Nuñez
Javier, 

a la hora de predecir, los factores en el nuevo data.frame han de tener el 
mismo numero de niveles que en el data.frame original:. 
Por ejemplo, para el modelo 
 fit=lme(weight~Time+Diet,random=~1|Chick,data=ChickWeight) 
 nuevo=expand.grid(Time=4:6, Diet=c(1:2)) 
 predict(fit,nuevo,level=0) 
Error in X %*% fixef(object) : non-conformable arguments 

Pero si escribes: 
 nuevo=expand.grid(Time=4:6, Diet=factor(c(1:2),levels=1:4)) 
 predict(fit,nuevo,level=0) 
[1] 46.11262 54.82983 63.54705 62.32261 71.03982 79.75703 
attr(,label) 
[1] Predicted values 






- Mensaje original -

De: javier ruben marcuzzi javier.ruben.marcu...@gmail.com 
Para: Olivier Nuñez onu...@unex.es 
CC: R-help-es@r-project.org r-help-es@r-project.org 
Enviados: Jueves, 30 de Abril 2015 16:15:26 
Asunto: Re: [R-es] predict nlme 

Estimado Oliver Nuñez 

Envío un ejemplo reproducible. 

Javier Marcuzzi 

# de donde tomo datos, y tiene el modelo (en el pdf) 
library(MCMCglmm) 
# librería con las funciónes que voy a usar 
library(nlme) 
datos0-ChickWeight 
# creo algunos datos que agrego a los origonales 
Factor-as.numeric(datos0$Chick) 
Factor[Factor  0  Factor = 10] - 'A' 
Factor[Factor  10  Factor = 20] - 'B' 
Factor[Factor  20  Factor = 30] - 'A' 
Factor[Factor  30  Factor = 40] - 'B' 
Factor[Factor  40  Factor = 50] - 'A' 

Insu-as.numeric(datos0$Chick) 
Insu[Insu  0  Insu = 35] - 'Mg' 
Insu[Insu  35  Insu = 50] - 'Cu' 

# datos para el modelo 
datos - data.frame(ChickWeight$Chick,ChickWeight$weight, ChickWeight$Time, 
ChickWeight$Diet, Factor, Insu) 
colnames(datos) - c(Ave,Peso,Tiempo, Dieta, Factor, Insu) 
datos 

# modelo 
m2 - lme(Peso ~ poly(Tiempo,2, raw = TRUE)+ Factor + Dieta + Insu-1 
,random=~poly(Tiempo,2, raw = TRUE)|Ave , datos, na.action=na.exclude 
,control=lmeControl(opt='optim', msVerbose = TRUE)) 
res2 -fixef(m2) 
res2 
# preguntas  
# una pregunta nueva Insu-1, porque deseo que me exprese el valor para casa 
Insu y no 
# mu + un valor de diferencia entre algunos y este 
# si tengo un solo efecto fijo (quito factor y dieta) no hay problelas, si en 
los tres 

# este funciona, los siguientes no 
predict(object = m2) 

grid - expand.grid(Tiempo=4:6, Factor=c(A), Insu=c(Mg,Cu), Dieta=c(1:2)) 
predict(object = m2, newdata =grid) 
predict(object = m2, newdata =grid, level = 0) 



De: Olivier Nuñez 
Enviado el: ‎jueves‎, ‎30‎ de ‎abril‎ de ‎2015 ‎05‎:‎58‎ ‎a.m. 
Para: Javier Ruben Marcuzzi 
CC: R-help-es@r-project.org 



- Mensaje original - 
De: javier ruben marcuzzi javier.ruben.marcu...@gmail.com 
Para: R-help-es@r-project.org r-help-es@r-project.org 
Enviados: Jueves, 30 de Abril 2015 4:07:35 
Asunto: [R-es] predict nlme 

Estimados 


Tengo un error que me desconcierta, es un código que simplifiqué de otro 
trabajo donde no hay problemas, sin embargo me da un error. 

Mándanos el modelo y tal vez podremos detectar el error. 
Un saludo. Olivier 



Una diferencia es que en mi otro trabajo uso spline y ahora polinomio, este es 
de segundo grado y se encuentra tanto en efectos fijos como aleatorios, el 
modelo es correcto, corre con MCMCglmm pero no con nlme. 





grid - expand.grid(Tiempo=4:6, Factor=c(A), Insu=c(1:3)) 
predict(object = m2, newdata =grid) 


Error in predict.lme(object = m2, newdata = grid) : 
cannot evaluate groups for desired levels on 'newdata' 



De otra forma 

predict(object = m2, newdata =grid, level = 0) 
Error in X %*% fixef(object) : non-conformable arguments 


Me perdí en el error, estaré cansado (es de noche) o mi código es obsoleto, 
pero mi trabajo de unos tres años del cuál realicé algunas simplificaciones, en 
el original funciona en la predicción. 


¿Alguna idea? 


Javier Rubén Marcuzzi 
[[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] predict nlme

2015-04-30 Por tema Olivier Nuñez


- Mensaje original -
De: javier ruben marcuzzi javier.ruben.marcu...@gmail.com
Para: R-help-es@r-project.org r-help-es@r-project.org
Enviados: Jueves, 30 de Abril 2015 4:07:35
Asunto: [R-es] predict nlme

Estimados


Tengo un error que me desconcierta, es un código que simplifiqué de otro 
trabajo donde no hay problemas, sin embargo me da un error.

Mándanos el modelo y tal vez podremos detectar el error.
Un saludo. Olivier



Una diferencia es que en mi otro trabajo uso spline y ahora polinomio, este es 
de segundo grado y se encuentra tanto en efectos fijos como aleatorios, el 
modelo es correcto, corre con MCMCglmm pero no con nlme.





grid - expand.grid(Tiempo=4:6, Factor=c(A), Insu=c(1:3))
predict(object = m2, newdata =grid)


Error in predict.lme(object = m2, newdata = grid) : 
  cannot evaluate groups for desired levels on 'newdata'



De otra forma

 predict(object = m2, newdata =grid, level = 0)
Error in X %*% fixef(object) : non-conformable arguments


Me perdí en el error, estaré cansado (es de noche) o mi código es obsoleto, 
pero mi trabajo de unos tres años del cuál realicé algunas simplificaciones, en 
el original funciona en la predicción.


¿Alguna idea?


Javier Rubén Marcuzzi
[[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] distribucion de IRWIN HALL

2015-04-22 Por tema Olivier Nuñez
N=1000 # tamaño simulación Monte Carlo
n=5 # numero de uniformes

cdf.IH -function(x,n,N) mean(replicate(N,sum(runif(n)))=x)
x=seq(0,5,.1)
y=sapply(x,FUN=cdf.IH,n=n,N=N)
plot(x,y,type=l)


- Mensaje original -
De: Genaro Llusco gellu...@gmail.com
Para: r-help-es@r-project.org
Enviados: Martes, 21 de Abril 2015 23:07:14
Asunto: [R-es] distribucion de IRWIN HALL

estimados

estoy considerando programar la funcion de distribucion de Irwin hall.
lamentablemente no he tenido exito, pido que alguien me pueda colaborar con
aquello, les quedo agradecido de antemano.
-- 
atte. Lic. Genaro Llusco Silvestre
gellu...@gmail.com
 Telf: 74028671
  blog personal es:
http://www.cientificest.blogspot.com

[[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] Weighted Likelihood

2015-04-16 Por tema Olivier Nuñez
No das muchos detalles sobre porque quieres ponderar los datos, pero intuyo que 
es por el diseño. 
Si es así, la función svydesign del paquete te permite especificar bien la 
probabilidad de selección del dato (probs) en la muestra o de manera 
equivalente, o el sampling weight que puedes interpretar como la 
representatividad del dato en la población. Una vez especificado el diseño 
mediante esta función, puedes llevar cualquier análisis estandár de tus datos. 
Un saludo. Olivier 

- Mensaje original -

De: Víctor Nalda Castellet victor.nalda.castel...@gmail.com 
Para: Olivier Nuñez onu...@unex.es 
CC: r-help-es r-help-es@r-project.org 
Enviados: Jueves, 16 de Abril 2015 11:25:10 
Asunto: Re: [R-es] Weighted Likelihood 

Hola, 

He buscado por el pdf de la documentación qué función es la que me puede servir 
pero no encuentro ninguna. 
¿Tenías alguna función especifica de ese paquete pensada? 


Un saludo, y muchas gracias por la ayuda. 

El 16 de abril de 2015, 10:45, Víctor Nalda Castellet  
victor.nalda.castel...@gmail.com  escribió: 



¡Muchas gracias Olivier! 


Un saludo. 

El 16 de abril de 2015, 10:44, Olivier Nuñez  onu...@unex.es  escribió: 

blockquote
Mira el paquete survey. 
Un saludo. Olivier 

- Mensaje original - 
De: Víctor Nalda Castellet  victor.nalda.castel...@gmail.com  
Para: r-help-es  r-help-es@r-project.org  
Enviados: Miércoles, 15 de Abril 2015 14:21:33 
Asunto: [R-es] Weighted Likelihood 

Buenas tardes, 

Estoy intentando ajustar distribuciones utilizando un vector de ponderación 
en los datos (Weighted Likelihood). ¿Existen paquetes en R que resuelven 
esto? He mirado ya el paquete wle pero no me permite introducir los pesos 
mediante los cuales ponderar los datos. 

En un primer momento, se me ha ocurrido realizar lo siguiente: repetir 
cada elemento del vector datos tantas veces como indique el vector pesos 
“modificado” (multiplicado por una potencia de 10, para que sean todos 
números enteros). Y con este vector de datos repetidos realizar el ajuste. 

Pero me gustaría conocer si existen otras formas más elegantes de hacerlo. 


Un saludo, y muchas gracias por adelantado. 

-- 
Víctor Nalda Castellet 

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

/blockquote




-- 
Víctor Nalda Castellet 


[[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] Las VII Jornadas de Usuarios de R, en Salamanca en noviembre

2015-04-16 Por tema Olivier Nuñez
Estupenda pagina Web para unas estupendas jornadas.
Gracias por vuestro trabajo.
Un saludo. Olivier

- Mensaje original -
De: Carlos J. Gil Bellosta gilbello...@gmail.com
Para: r-help-es r-help-es@r-project.org
Enviados: Lunes, 13 de Abril 2015 22:10:52
Asunto: [R-es] Las VII Jornadas de Usuarios de R, en Salamanca en noviembre

Hola, ¿qué tal?

Ya se han anunciado públicamente las VII Jornadas de Usuarios de R.
Tendrán lugar en Salamanca los días 5 y 6 de noviembre de 2015.

Los detalles pueden consultarse en

http://r-es.org/7jornadasR/

En nombre de los comités científico y coordinador y de otros
voluntarios que han colaborado en su arranque, quiero invitaros a
asistir y a participar en ellas.

Como todos los años, habrá presentaciones y talleres. También
actividades sociales e intercambio de ideas. Y nos veremos las caras
algunos de quienes escribimos a menudo por aquí.

Un saludo,

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

___
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] como hacer una operacion con data.table

2015-03-12 Por tema Olivier Nuñez
Par evitar el warning

 DT=data.table(col1=1:10)
 DT[,col2:=diff(log(c(1,col1)))]
 DT
col1  col2
 1:1 0.000
 2:2 0.6931472
 3:3 0.4054651
 4:4 0.2876821
 5:5 0.2231436
 6:6 0.1823216
 7:7 0.1541507
 8:8 0.1335314
 9:9 0.1177830
10:   10 0.1053605
 


- Mensaje original -
De: Carlos Ortega c...@qualityexcellence.es
Para: Eric ericconchamu...@gmail.com
CC: r-help-es@r-project.org
Enviados: Miércoles, 11 de Marzo 2015 15:19:07
Asunto: Re: [R-es] como hacer una operacion con data.table

Hola,

Así sería una forma...

#
 library(data.table)
 DT - data.table(x=seq(1:20))
 DT[ 2:nrow(DT), col2 := diff(log(x)) ]
Mensajes de aviso perdidos
In `[.data.table`(DT, 2:nrow(DT), `:=`(col2, diff(log(x :
  Supplied 18 items to be assigned to 19 items of column 'col2' (recycled
leaving remainder of 1 items).
 head(DT)
   x  col2
1: 1NA
2: 2 0.4054651
3: 3 0.2876821
4: 4 0.2231436
5: 5 0.1823216
6: 6 0.1541507
 log(2) - log(1)
[1] 0.6931472
 log(3) - log(2)
[1] 0.4054651

#

Saludos,
Carlos Ortega
www.qualityexcellence.es

El 10 de marzo de 2015, 23:48, Eric ericconchamu...@gmail.com escribió:

 estimados, siempre habia usado data.frame, pero estoy tratando de aprender
 a usar data.table porque normalmente tengo que manejar una buena cantidad
 de datos

 ahora necesito hacer un calculo simple, para el que antes usaba ciclos FOR,
 pero quiero aprovechar las ventajas de data.table

 mi preguna es como podria calcular, por ejemplo, la columna 2 de un
 data.table llamada DT si el valor de la primera columna es una serie de 1 a
 10, y la celda de la fila m de la segunda columna es igual al valor de la
 celda m de la primera columna menos la celda m-1 de la primera columna.

 me explico ??

 si fuera un ciclo con data.frame lo haria asi:

   i - 2
   for (i in 2:nrow(DT))
   {
 DT[i,col2] - log(DT[i,col1]) - log(DT[i-1,col1])
 i - i + 1
   }

 No escribi toda la nomenclatura pero se entiende la idea, cierto ?

 Espero me den una mano como siempre.

 Muchas gracias !





 --
 Nota: las tildes se han omitido para evitar conflictos con algunos lectores
 de correo.

 Frases notables:
 * SATYÂT NÂSTI PARO DHARMAH (No hay religion mas elevada que la verdad)
 * La oscuridad no se combate, se ilumina ...
 * Un economista es un experto que sabrá mañana por qué las cosas que
 predijo
 ayer no han sucedido hoy (Laurence Peter).

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

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


Re: [R-es] trabajar con todos los elementos de la fila de un data.table

2015-01-28 Por tema Olivier Nuñez
Utiliza collapse en vez de sep dentro de la función paste().
Un ejemplo:

 DT=data.table(ID=1:4,ERR1=c(1,1,NA,NA),ERR2=c(NA,2,2,NA),ERR3=c(3,3,3,NA))
 DT
   ID ERR1 ERR2 ERR3
1:  11   NA3
2:  2123
3:  3   NA23
4:  4   NA   NA   NA
 DT[,lista:=paste(na.omit(c(ERR1,ERR2,ERR3)),collapse=|),by=ID]
 DT
   ID ERR1 ERR2 ERR3 lista
1:  11   NA3   1|3
2:  2123 1|2|3
3:  3   NA23   2|3
4:  4   NA   NA   NA  
 


- Mensaje original -
De: Patricio Fuenmayor Viteri patricio.fuenma...@outlook.com
Para: r-help-es r-help-es@r-project.org
Enviados: Martes, 27 de Enero 2015 17:05:23
Asunto: [R-es] trabajar con todos los elementos de la fila de un data.table

Hola a todos...Auxilio, estoy varado en esto y creo que mi terquedad no me deja 
avanzar ... terquedad ya que estoy usando la estructura data.table y no logro 
obtener el resultado. Tengo una DT contiene un DATO y los resultados de la 
aplicaci�n de una validaci�n (ERR01, ERR2, ERR3) y la concatenaci�n de estos 
errores en una sola columna. Si tiene error, graba el n�mero del error, si no 
lo tiene, graba NA. Utilizando la funci�n paste directamente en el DT se 
ontiene la variable LISTA:
DATO  ERR1  ERR2 ERR3  LIST 1  231|2|3BBB  
NA  23NA|2|3CCC  NA  NA 3NA|NA|3DDD 
NA  NA NA NA|NA|NA
Pero lo que se requiere es que el NA no se muestre, es decir lista deber�a 
tener elementos como: 1|2|3, 2|3, 3, y vac�o, si las 3 validaciones arrojaron 
NA.uso lo siguiente: 
DT[,lista:=paste(err1,err1,err3,sep=|)]
pero para quitar los NA, debo usar funciones como na.omit, y no logro crear la 
estructura para usarlo... que debe ser un na,omit(c(err1,err2,err3)) y sobre 
esto el paste.Supongo que tengo un l�o en uso de las estructuras ... Si no lo 
logro, toca trabajar con data.frames y dejar a aun lado mi terquedad...!!!
Gracias por cualquier ayuda y/o sugerencia.


  
[[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] Simulación de modelo logit con interacción

2015-01-23 Por tema Olivier Nuñez
Emilio,

espero no haberte generado mucha confusión con mi anterior respuesta.
El problema no es de separación sino más bien de tamaño muestral.
Al coger el código de Carlos, obtenía que y y x1 eran sistemáticamente 
independiente (la tabla table(dat$y,dat$x1) tiene columnas proporcionales).
En el diseño de Carlos, el código correcto para simular los datos ha de ser 
dat$y= rbinom(2*n,1,pr).
Con tu diseño, si elijo un tamaño muestral suficientemente grande, obtengo 
estimaciones razonables de los parámetros de tu modelo:

 res - logisticsimulation(1)
 apply(res,2,median)
(Intercept)  x1  x2   x1:x2 
 -0.9955877  -3.9938632   6.9967218  -0.9913839 

Un saludo. Olivier


- Mensaje original -
De: Emilio Torres Manzanera tor...@uniovi.es
Para: r-help-es@r-project.org
Enviados: Jueves, 22 de Enero 2015 12:28:14
Asunto: [R-es] Simulación de modelo logit con interacción

Hola,
Deseo simular un modelo logit con interacción, estimar sus coeficientes y 
comprobar si son o no parecidos al modelo teórico. Con este ejemplo obtengo que 
los coeficientes estimados no se asemejan mucho a los originales. ¿Se le ocurre 
a alguien cuál es el motivo de esta discrepancia? ¿y cómo solucionarlo?
Muchas gracias
Emilio

logisticsimulation - function(n){
  dat - data.frame(x1=sample(0:1, n,replace=TRUE),
x2=sample(0:1, n,replace=TRUE))
  odds - exp(-1 - 4 * dat$x1 + 7*dat$x2 - 1 *dat$x1* dat$x2 )
  pr - odds/(1+odds)
  res - replicate(100, {
dat$y - rbinom(n,1,pr)
coef(glm(y ~ x1*x2, data = dat, family = binomial()))
  })
  t(res)
}

res - logisticsimulation(100)
apply(res,2,median)
## (Intercept)  x1  x2   x1:x2 
## -1.0986123 -18.4674562  20.4823593  -0.0512933

Deberían salir -1, -4, 7, 1

___
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] Simulación de modelo logit con interacción

2015-01-23 Por tema Olivier Nuñez
Efectivamente, la normalidad tarda en llegar (un problema que merece ser 
investigado)
En cualquier caso, parece que ambos diseños dan varianzas asintóticas similares 
de los estimadores:

 n=1000
 
 dat - data.frame(x1=sample(0:1, n,replace=TRUE),x2=sample(0:1, 
 n,replace=TRUE))
 dat$intercept=1
 odds - exp(-1 - 4 * dat$x1 + 7*dat$x2  - 1 *dat$x1* dat$x2 )
 pr - odds/(1+odds)
 D=diag(pr*(1-pr))
 X=as.matrix(dat)
 I=t(X)%*%D%*%X
 solve(I)
  x1   x2intercept
x1 0.4716741 -0.451997095 -0.014952896
x2-0.4519971  0.470731667 -0.005214237
intercept -0.0149529 -0.005214237  0.020017370
 
 dat$x1= rep(c(0,1), each = n/2)
 dat$x2 = rep(c(0,1), times = n/2)
 odds - exp(-1 - 4 * dat$x1 + 7*dat$x2 - 1 * dat$x1 * dat$x2 )
 pr - odds/(1+odds)
   
 D=diag(pr*(1-pr))
 X=as.matrix(dat)
 I=t(X)%*%D%*%X
 solve(I)
   x1   x2intercept
x1 0.45113285 -0.430788206 -0.014755274
x2-0.43078821  0.451132851 -0.005589371
intercept -0.01475527 -0.005589371  0.020161833
 


- Mensaje original -
De: Carlos J. Gil Bellosta c...@datanalytics.com
Para: Olivier Nuñez onu...@unex.es
CC: Emilio Torres Manzanera tor...@uniovi.es, r-help-es 
r-help-es@r-project.org
Enviados: Viernes, 23 de Enero 2015 11:14:44
Asunto: Re: [R-es] Simulación de modelo logit con interacción

Hola, ¿qué tal?

Cierto, cierto, había un error en el código que publiqué. Pero el
diagnóstico es parecido. Cuando los datos se generan con el
coeficiente de x2 igual a 7, los coeficientes estimados tienen una
distribución extraña, bimodal (aparentemente), en lugar de
_normalmente_ distribuida alrededor del 7 como se espera. Supongo que
depende del número de casos en que x2 = 1 e y = 0.

Un saludo,

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

El día 23 de enero de 2015, 9:54, Olivier Nuñez onu...@unex.es escribió:
 Emilio,

 espero no haberte generado mucha confusión con mi anterior respuesta.
 El problema no es de separación sino más bien de tamaño muestral.
 Al coger el código de Carlos, obtenía que y y x1 eran sistemáticamente 
 independiente (la tabla table(dat$y,dat$x1) tiene columnas proporcionales).
 En el diseño de Carlos, el código correcto para simular los datos ha de ser 
 dat$y= rbinom(2*n,1,pr).
 Con tu diseño, si elijo un tamaño muestral suficientemente grande, obtengo 
 estimaciones razonables de los parámetros de tu modelo:

 res - logisticsimulation(1)
 apply(res,2,median)
 (Intercept)  x1  x2   x1:x2
  -0.9955877  -3.9938632   6.9967218  -0.9913839

 Un saludo. Olivier


 - Mensaje original -
 De: Emilio Torres Manzanera tor...@uniovi.es
 Para: r-help-es@r-project.org
 Enviados: Jueves, 22 de Enero 2015 12:28:14
 Asunto: [R-es] Simulación de modelo logit con interacción

 Hola,
 Deseo simular un modelo logit con interacción, estimar sus coeficientes y 
 comprobar si son o no parecidos al modelo teórico. Con este ejemplo obtengo 
 que los coeficientes estimados no se asemejan mucho a los originales. ¿Se le 
 ocurre a alguien cuál es el motivo de esta discrepancia? ¿y cómo solucionarlo?
 Muchas gracias
 Emilio

 logisticsimulation - function(n){
   dat - data.frame(x1=sample(0:1, n,replace=TRUE),
 x2=sample(0:1, n,replace=TRUE))
   odds - exp(-1 - 4 * dat$x1 + 7*dat$x2 - 1 *dat$x1* dat$x2 )
   pr - odds/(1+odds)
   res - replicate(100, {
 dat$y - rbinom(n,1,pr)
 coef(glm(y ~ x1*x2, data = dat, family = binomial()))
   })
   t(res)
 }

 res - logisticsimulation(100)
 apply(res,2,median)
 ## (Intercept)  x1  x2   x1:x2
 ## -1.0986123 -18.4674562  20.4823593  -0.0512933

 Deberían salir -1, -4, 7, 1

 ___
 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

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


Re: [R-es] Comportamiento extraño de glm.nb

2014-11-13 Por tema Olivier Nuñez
Bueno, es posible que los altos valores de tu respuesta (la media de Fobs es 
alrededor de 1) y la escasez de datos validos (el 90% de los valores de 
Fobs son NA) hagan la vida dificil a glm.nb. Puedes probar ayudar glm.nb con 
valores de arranque razonables para este tipo de datos.

Prueba con
glm.nb(Fobs ~ Wnov, data=adults.dat, 
na.action=na.omit,link=identity,start=batch.glm$coef)

donde batch.glm es el ajuste con los datos bien.
Un saludo. Olivier


- Mensaje original -
De: Jorge Tornero - Listas jtorlis...@gmail.com
Para: r-help-es r-help-es@r-project.org
Enviados: Jueves, 13 de Noviembre 2014 14:10:29
Asunto: [R-es] Comportamiento extraño de glm.nb

(Perdón, no puse asunto en el post original)

Ah, corremos R 3.0.2 y l alibrería MASS 7.3-29

Estimados todos:

Os escribo porque tengo un problema que nos está dejando un poco
trastornadillos. Probablemente sea uno de esos que los ve un experto a
un kilómetro y dice ¡oh! toca aquí. Pero nos trae de cabeza.

El caso es que aquí usamos un script para calcular ciertos parámetros
relacionados con el método de producción diaria de huevos del boquerón
del Golfo de Cádiz. Es un script que venimos usando desde hace tiempo
sin problema.

Pero ahora nos da un problema (línea 292) en :

batch.glm - glm.nb(Fobs ~ Wnov, data=adults.dat,
na.action=na.omit,link=identity,start=0)

Error: no valid set of coefficients has been found: please supply
starting values
Además: Mensajes de aviso perdidos
In log(y/mu) : Se han producido NaNs

Aparte de que la documentación e información sobre el particular error
no es abundante, he aquí lo que nos desconcierta: Ese mismo script, con
datos similares (pero de otra campaña), corre perfectamente.

He probado a eliminar datos potencialmente conflictivos, pero nada. Los
archivos con los datos están generados exactamente de la misma manera
(salida de una base de datos postgresql, con idéntica consulta)

Se han revisado los datos y no aparece nada exótico. La verdad es que
estoy un poco desorientado, y por eso escribo a la lista.

He dejado una copia del script, así como de los datos, por si alguien se
animara a echar un vistazo en un gist en mi cuenta de github:

https://gist.github.com/734170b42c8307276451.git

Muchas gracias y un saludo

Jorge Tornero

___
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] Inserción de condicionales en pequeño código

2014-07-22 Por tema Olivier Nuñez
Franciso,

 #Tus datos
 require(data.table)
 DT -
data.table(id=1:5,fnacim=as.Date(c(1939-10-28,1943-02-26,1946-03-09,1947-05-19,1932-04-03)),finicio=as.Date(c(2012-01-01,1980-07-15,1998-10-28,2011-10-28,2010-10-28)),fsal=as.Date(c(2012-05-01,2014-02-01,2012-10-20,2013-10-15,2012-08-25)))


 #Tus condiciones
 edad_u=65; Apertura=as.Date(2010-01-01)


 #Con estas dos lineas creo que debería poder identificar a tus empleados
 DT[,fcumple:=paste(year(fnacim)+65,substr(fnacim,6,10),sep=-)]
 DT[,quien:=Apertura=fcumple  finicio=Apertura]
 DT
   id fnacimfinicio   fsalfcumple quien
1:  1 1939-10-28 2012-01-01 2012-05-01 2004-10-28 FALSE
2:  2 1943-02-26 1980-07-15 2014-02-01 2008-02-26  TRUE
3:  3 1946-03-09 1998-10-28 2012-10-20 2011-03-09 FALSE
4:  4 1947-05-19 2011-10-28 2013-10-15 2012-05-19 FALSE
5:  5 1932-04-03 2010-10-28 2012-08-25 1997-04-03 FALSE


 Hola Javier Rubén,

 Gracias por tu respuesta. Si bien ya sabía que el código funcionaba (de 
 hecho, ya lo
 mencionaba en mi correo inicial), el motivo de adjuntarlo era por si dicho 
 código
 fuese muy mejorable en condiciones de rendimiento, pues he de aplicarlo a 
 decenas de
 miles de datos y funciona algo lento (posible motivo ya apuntado en tu 
 respuesta).
 Dado que sé que en el foro hay gente que sabe muchísimo en el tratamiento de 
 fechas,
  quizás (no lo sé) se puede establecer una clara mejora en términos de 
 eficiencia
 computacional.

 En cualquier caso, lo dejo por si alguien realiza alguna vez algo similar o 
 por si
 alguien tiene una aportación al respecto.

 Saludos.

   [[alternative HTML version deleted]]

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



--



Olivier G. Nuñez
Email: onu...@unex.es
http://kolmogorov.unex.es/~onunez
Tel : +34 663 03 69 09
Departamento de Matemáticas
Universidad de Extremadura

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


Re: [R-es] Mapa de quantiles con spplot

2014-05-05 Por tema Olivier Nuñez
No resulta fácil contestarte con la información que proporcionas.
Sobre la base de las variables que definiste, intuyó que lo siguiente debería
funcionar:

zm$clases - class
spplot(zm, clases , col.regions=plotclr)

Un saludo. Olivier

 Hola,

 Intento representar en un mapa participaciones porcentuales de los sectores
 económicos y no logro hacerlo con spplot.

 He intentado con spplot(zm, c(“part88”, “part93”), cuts=4, 
 col.regions=brewer.pal(4,
 “Set3”))

 Lo pude hacer utilizando el base graphics de R, definiendo:

 plotvar88 - zm$part88
 nclr - 8
 plotclr - brewer.pal(nclr, PuOr)
 plotclr - plotclr[nclr:1]
 class - classIntervals(plotvar88, nclr, style=quantile)
 colcode - findColours(class, plotclr)
 plot(zm)
 plot(zm, col=colcode, add=T)
 legend(3377189,2249615, legend=names(attr(colcode, table)), 
 fill=attr(colcode,
 palette), cex=0.6, bty=n”)

 Después intenté meter algunos de esos argumentos utilizando spplot

 spplot(zm, c(“part88”, “part93”), col.regions=plotclr, cuts=nclr)

 y tampoco funcionó.

 Tengo algunas nociones de cómo hacerlo en spplot, pero no sé cómo, pues 
 desconozco
 la forma en utilizar los argumentos por ejemplo usando “cuts”, “at”. He 
 revisado la
 ayuda que provee el paquete y sigo sin poder concretarlo.

 Agradecería un poco de orientación.

 Saludos cordiales.

 Rolando Valdez

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



--



Olivier G. Nuñez
Email: onu...@unex.es
http://kolmogorov.unex.es/~onunez
Tel : +34 663 03 69 09
Departamento de Matemáticas
Universidad de Extremadura

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