[R-es] Actualizar tabla en shiny

2023-02-08 Por tema Guillermo.Vinue
Hola,

Quería preguntar si alguien sabe cómo se puede utilizar el resultado de 
modificar una tabla con el argumento editable = TRUE de datatable, para 
actualizar una segunda tabla. Adjunto un código de ejemplo y lo copio también 
aquí abajo. 

Lo que yo querría por ejemplo es poner en la columna 'replacements' de la tab1 
los valores 1 y 2 (clicando en las celdas de esa columna y escribiendo a mano 
ese valor, gracias a editable = TRUE) y que en la tab2 aparecieran esos valores 
cambiados.

He encontrado este enlace con la misma idea

https://stackoverflow.com/questions/31744300/using-the-values-of-rendered-datatable-in-later-analysis

pero no sé llevar a cabo los procedimientos que se comentan en la respuesta.

Gracias de antemano.

Saludos,

Guillermo



library(shiny)
library(DT)
library(dplyr)

ui <- fluidPage(
  sidebarLayout(
sidebarPanel(
  h4("App para sustituir valores. A partir de sustituir valores en la tabla 
de arriba, el 
 objetivo es actualizar la tabla de abajo."),
),
mainPanel(
  dataTableOutput("tab1"),
  br(),
  dataTableOutput("tab2")
)
  )
)

server <- function(input, output) {
  
  output$tab1 <- renderDataTable({
df1 <- data.frame(values_to_replace = c("A+", "B-")) %>%
  mutate(replacements = NA)

datatable(df1, rownames = FALSE, editable = TRUE)
  })
  
  output$tab2 <- renderDataTable({
df1 <- data.frame(observations = c("A+", "B-", 1, 5, "B-", 7, "A+", "B-"))

vals_orig <- c("A+", "B-")
#vals_repl <- df1$replacements # ESTO ES LO QUE DEBE VENIR DE tab.
vals_repl <- c(10, 20)

df2 <- df1 %>%
  mutate(observations_repl = plyr::mapvalues(observations, from = 
vals_orig, to = vals_repl))

datatable(df2, rownames = FALSE)
  })
}

shinyApp(ui, server)


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


[R-es] (Fwd) Re: Re: Evitar posibles conflictos entre librerí as

2020-07-21 Por tema Guillermo.Vinue
Estimado Javier,

Gracias por la respuesta. Aunque he tratado de utilizar los imports y la carga 
de paquetes de diferentes formas, no he conseguido de momento evitar el error. 

Al final, para el objetivo de crear un login estoy utilizando el paquete 
shinyauthr, https://github.com/PaulC91/shinyauthr

No está tan desarrollado como el de shinymanager pero parece un poco más 
estable.

Saludos,

Guillermo

> Estimado Guillermo
> 
> El problema está en los tokens, esto es una cantidad de números y letras,
> lo que sea, mire un ejemplo en https://jwt.io/ , en otras palabras es lo
> que identifica cada una para con el servidor y que R no realice por ejemplo
> un promedio mezclando dados de usuarios. En un momento se debe requerir
> algo que al no tener el token no R no conoce donde buscar. Intente algun
> import o library()
> 
> Javier Rubén Marcuzzi
> 
> El lun., 20 jul. 2020 a las 5:38,  escribió:
> 
> > Buenos días,
> >
> > Tengo el siguiente problema que no consigo solucionar y quisiera preguntar
> > si alguien tiene alguna recomendación:
> >
> > Estoy desarollando una shiny app en la que utilizo el paquete shinymanager
> > para que el usuario acceda a ella mediante una contraseña.
> >
> > Esta app utiliza, entre otros, el paquete tidytext, que tiene en la lista
> > de Suggests el paquete quanteda.
> > https://cran.r-project.org/web/packages/tidytext/
> >
> > Cuando ejecuto esta app en mi ordenador local funciona bien, es decir,
> > puedo hacer el login sin problema. Sin embargo, cuando subo esta app a un
> > servidor personal, me da este error (tanto en local como en el servidor
> > tengo las mismas versiones de los paquetes):
> >
> > Error in unclass: cannot unclass an environment
> >   58: upgrade_tokens
> >   57: as.tokens.tokens
> >   55: docvars.tokens
> >   52: $.tokens
> >   50: secure_server
> >
> > secure_server es una función de shinymanager y he visto que upgrade_tokens
> > es una función de quanteda. He podido descubrir que shinymanager define una
> > clase interna que se llama .tokens <- R6::R6Class(...), mientras que
> > quanteda tiene una función que se llama tokens <- function(...)
> >
> > Entiendo que hay un conflicto entre shinymanager y quanteda (aunque
> > quanteda no es un paquete que se cargue con Imports), pero no he podido
> > lograr resolverlo. Tampoco he podido averiguar qué significa "cannot
> > unclass an environment".
> >
> > ¿Alguien conoce una posible solución?
> >
> > 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


[R-es] Evitar posibles conflictos entre librerías

2020-07-20 Por tema Guillermo.Vinue
Buenos días,

Tengo el siguiente problema que no consigo solucionar y quisiera preguntar si 
alguien tiene alguna recomendación:

Estoy desarollando una shiny app en la que utilizo el paquete shinymanager para 
que el usuario acceda a ella mediante una contraseña.

Esta app utiliza, entre otros, el paquete tidytext, que tiene en la lista de 
Suggests el paquete quanteda.
https://cran.r-project.org/web/packages/tidytext/

Cuando ejecuto esta app en mi ordenador local funciona bien, es decir, puedo 
hacer el login sin problema. Sin embargo, cuando subo esta app a un servidor 
personal, me da este error (tanto en local como en el servidor tengo las mismas 
versiones de los paquetes):

Error in unclass: cannot unclass an environment
  58: upgrade_tokens
  57: as.tokens.tokens
  55: docvars.tokens
  52: $.tokens
  50: secure_server

secure_server es una función de shinymanager y he visto que upgrade_tokens es 
una función de quanteda. He podido descubrir que shinymanager define una clase 
interna que se llama .tokens <- R6::R6Class(...), mientras que quanteda tiene 
una función que se llama tokens <- function(...)

Entiendo que hay un conflicto entre shinymanager y quanteda (aunque quanteda no 
es un paquete que se cargue con Imports), pero no he podido lograr resolverlo. 
Tampoco he podido averiguar qué significa "cannot unclass an environment".

¿Alguien conoce una posible solución?

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-es] foreach doParallel

2018-07-24 Por tema Guillermo.Vinue
Hola,

Estoy desarrollando un algoritmo para bases de datos grandes. Básicamente es un 
algoritmo con varias iteraciones en el que comparo el valor de la iteración 
actual y lo comparo con el de la anterior. Si es menor, lo reemplazo. Si no, no.

He escrito la versión simple con un bucle for y la versión en paralelo usando 
un bucle foreach paralelizando en varios núcleos para tratar de reducir el 
tiempo de computación. Lo que pasa es que no obtengo los mismos resultados con 
ambos algoritmos. Y es que no consigo entender bien cómo actua foreach usando 
varios núcleos, por lo que quisiera pediros vuestra ayuda.

Un ejemplo sencillo es el siguiente:

En primer lugar, la versión for:
set.seed(10)
vect <- c()
err <- Inf
for (i in 1:3) {
  vect <- c(vect, sample(-10:10, 1))
  if (vect[i] < err) {
err <- vect[i]
  }
}
vect
#[1] 0 -4 -2
err
#[1] -4
Efectivamente, el error obtenido es el menor valor.

Ahora la versión foreach sin paralelizar (por ello aparece un warning, según se 
indica en la viñeta de doParallel):
library(foreach)
comb <- function(a, b) { 
  if (a < b) {
return(a)
  }else{
return(b)   
  } 
}
set.seed(10)
vect <- c()
err <- Inf
d1 <- foreach(i = 1:3, .combine = "rbind") %dopar% {
  vect <- c(vect, sample(-10:10, 1))
  err <- comb(vect[i], err)
  data.frame(cand = vect[i], err = err)
}
d1 
#  cand err
#10   0
#2   -4  -4
#3   -2  -4
De nuevo nos aparece que el error es -4.

Por último, la versión foreach con doParallel, en la que no consigo obtener los 
mismos resultados:
library(doParallel)
library(doRNG)
no_cores <- detectCores() - 1
no_cores 
#[1] 3
cl <- makeCluster(no_cores)
registerDoParallel(cl)
registerDoRNG(10)
vect <- c()
d1 <- foreach(i = 1:3, .combine = "rbind") %dopar% {
  err <- Inf
  comb <- function(a, b) { 
if (a < b) {
  return(a)
}else{
  return(b)   
} 
  }
  vect <- sample(-10:10, 1)
  err <- comb(vect, err)
  data.frame(cand = vect, err = err)
}
d1
#  cand err
#1   10  10
#24   4
#36   6
stopCluster(cl)

Parece que cada iteración se ha ido a un núcleo diferente y no se comparan 
entre sí, sino cada una con el valor inicial Inf. ¿Sabéis cómo conseguir la 
comparación entre sucesivos valores en el caso del foreach paralelo?

Muchas gracias de antemano.

Saludos,

Guillermo

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


Re: [R-es] Contar categorías después de ciertos valores

2018-03-12 Por tema Guillermo.Vinue
Muchas gracias Carlos y Javier por la ayuda.

Saludos,

Guillermo

> Hola,
> 
> Esta es una forma...
> 
> #-
> 
> x <- c(3, "A", "B", 5, "A", 4, 5, "A", "A", 3)
> x_n <- as.numeric(x)
> 
> cat_val <- unique(x[is.na(x_n)])
> num_val <- x_n[!is.na(x_n)]
> 
> df <- data.frame(
>   x_n = x_n,
>   y = 1:length(x_n),
>   x = x,
>   x_l = is.na(df$x_n)
>  )
> 
> num_df <- data.frame( nume = 0, letra = 0)
> cont <- 0
> for(i in 1:nrow(df)) {
>   if (df[i, 4] == FALSE & df[i + 1, 4] != FALSE & i < nrow(df)) {
> num <- df[i, 1]
>   }
>   if (df[i, 4] != FALSE) {
> cont <- cont + 1
> num_df[cont, 1]  <-  num
> num_df[cont, 2] <- as.vector(df[i, 3])
>   }
>   if (df[i, 4] == FALSE & df[i + 1, 4] == FALSE & i < nrow(df)) {
> cont <- cont + 1
> num <- df[i, 1]
> num_df[cont, 1] <-  num
> num_df[cont, 2] <- 0
>   }
> 
> }
> 
> 
> library(dplyr)
> library(tidyr)
> 
> res_df <- num_df %>%
>   group_by(nume, letra) %>%
>   summarize( res = n()) %>%
>   spread( letra, res)
> 
> res_df[is.na(res_df)] <- 0
> res_df
> 
> #-
> 
> 
> Que produce este resultado:
> 
> > res_df
> # A tibble: 3 x 4
> # Groups:   nume [3]
>nume   `0` A B
>  
> 13.0.1.1.
> 24.1.0.0.
> 35.0.3.0.
> 
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
> 
> 
> El 9 de marzo de 2018, 16:02,  escribió:
> 
> > Hola,
> >
> > Estoy intentando averiguar cómo contar el número de categorías situadas
> > después de ciertos valores. Por ejemplo, en el siguiente vector:
> >
> > x <- c(3, "A", "B", 5, "A", 4, 5, "A", "A", 3)
> >
> > el resultado que quisiera obtener es:
> >
> > Valor -> Resultado
> > 3 -> 1 A y 1 B
> > 4 -> 0 A y 0 B
> > 5 -> 3 A y 0 B
> >
> > ¿Alguien tiene alguna sugerencia?.
> >
> > Muchas gracias de antemano.
> >
> > Guillermo
> >
> > ___
> > 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
> 

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


[R-es] Contar categorías después de ciertos valores

2018-03-09 Por tema Guillermo.Vinue
Hola,

Estoy intentando averiguar cómo contar el número de categorías situadas después 
de ciertos valores. Por ejemplo, en el siguiente vector:

x <- c(3, "A", "B", 5, "A", 4, 5, "A", "A", 3)

el resultado que quisiera obtener es:

Valor -> Resultado
3 -> 1 A y 1 B
4 -> 0 A y 0 B   
5 -> 3 A y 0 B 

¿Alguien tiene alguna sugerencia?.

Muchas gracias de antemano.

Guillermo

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


Re: [R-es] Problema con shiny en Fedora

2017-07-25 Por tema Guillermo.Vinue
Hola Freddy,

Muchas gracias por la respuesta. Lo he probado y no ha funcionado. Una vez 
ejecutado update.packages(ask = FALSE, checkBuilt = TRUE)​, cuando entro en R 
desde la terminal con: 
$ sudo R 

y ejecuto la app:

> library(shiny)
> runExample("01_hello")

me aparece el mensaje de error que adjunto en un txt.

En cambio, cuando entro en R desde la terminal simplemente con:
$ R 
sí que me aparece la aplicación de 01_hello y funciona bien.

Viendo el mensaje de error, he probado a poner google-chrome como servidor por 
defecto (en lugar de firefox), pero entrando con $ sudo R la app sigue sin 
abrirse y entrando con $ R sí que se sigue abriendo, es decir, la app se abre 
en el servidor que esté definido por defecto, que es como debería ser, tanto 
entrando con $ sudo R como desde RStudio, donde tampoco se abre.

He mirado si es un problema de las librerías y RStudio y R sin ser root tienen 
las mismas:

$ sudo R
> libPaths()
[1] "/usr/lib64/R/library" 
[2] "/usr/share/R/library"

$ R
> libPaths()
[1] "/home/guillevinue/R/x86_64-redhat-linux-gnu-library/3.4"
[2] "/usr/lib64/R/library"   
[3] "/usr/share/R/library" 

En RStudio:
> .libPaths()
[1] "/home/guillevinue/R/x86_64-redhat-linux-gnu-library/3.4"
[2] "/usr/lib64/R/library"   
[3] "/usr/share/R/library" 

¿Alguna posible sugerencia?

Saludos,

Guillermo

> ​Hola Guillermo.
> ​
> 
> "Reinstalling packages with the new version of R" dice "The following code
> > should be run as root after upgrading R on Linux". Esto podría ser una
> > solución pero ciertamente no sé cómo hacerlo porque en la terminal:
> > $ sudo update.packages(ask = FALSE, checkBuilt = TRUE)
> > no se puede ejecutar.
> >
> 
> ​¿Servirá escribir desde la terminal
> 
> sudo R​
> >
> 
> ​ingresar la contraseña y luego actualizar con
> 
> update.packages(ask = FALSE, checkBuilt = TRUE)​
> 
> 
> ?
> 
> ​Haznos saber.
> 
> ¡Salud!​
> 
> -- 
> «Pídeles sus títulos a los que te persiguen, pregúntales
> cuándo nacieron, diles que te demuestren su existencia.»
> 
> Rafael Cadenas
> 

> library(shiny)
> runExample("01_hello")

Listening on http://127.0.0.1:6671
No protocol specified
Unable to init server: Could not connect: Connection refused
Error: cannot open display: :0
/usr/bin/xdg-open: line 832: x-www-browser: command not found
No protocol specified
Unable to init server: Could not connect: Connection refused
Error: cannot open display: :0
/usr/bin/xdg-open: line 832: iceweasel: command not found
/usr/bin/xdg-open: line 832: seamonkey: command not found
/usr/bin/xdg-open: line 832: mozilla: command not found
No protocol specified
Unable to init server: Could not connect: Connection refused
Failed to parse arguments: Cannot open display: 
/usr/bin/xdg-open: line 832: konqueror: command not found
/usr/bin/xdg-open: line 832: chromium-browser: command not found
No protocol specified

(google-chrome:3239): Gtk-WARNING **: cannot open display: :0
/usr/bin/xdg-open: line 832: www-browser: command not found
/usr/bin/xdg-open: line 832: links2: command not found
/usr/bin/xdg-open: line 832: elinks: command not found
/usr/bin/xdg-open: line 832: links: command not found
/usr/bin/xdg-open: line 832: lynx: command not found
/usr/bin/xdg-open: line 832: w3m: command not found
xdg-open: no method available for opening 'http://127.0.0.1:6671'


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

[R-es] Problema con shiny en Fedora

2017-07-25 Por tema Guillermo.Vinue
Hola,

He actualizado las versiones con las que trabajo de Fedora, R y RStudio y shiny 
me ha dejado de funcionar. Cuando ejecuto simplemente:

library(shiny)
runExample("01_hello")

RStudio se cierra. He buscado en google con cosas similares a "Rstudio crashes 
shiny linux" y no me ha funcionado ninguna de las sugerencias que he 
encontrado. Tengo actualizados todos los paquetes. En este link:

https://shiny.rstudio.com/articles/upgrade-R.html

en el apartado "Reinstalling packages with the new version of R" dice "The 
following code should be run as root after upgrading R on Linux". Esto podría 
ser una solución pero ciertamente no sé cómo hacerlo porque en la terminal:
$ sudo update.packages(ask = FALSE, checkBuilt = TRUE)
no se puede ejecutar. 

Estos son los datos de las versiones con las que trabajo: ¿Alguien ha tenido un 
problema similar y sabe cómo resolverlo? Muchas gracias.

> RStudio.Version()
$mode
[1] "desktop"

$version
[1] ‘1.0.153’

> sessionInfo()
R version 3.4.1 (2017-06-30)
Platform: x86_64-redhat-linux-gnu (64-bit)
Running under: Fedora 26 (Workstation Edition)

Matrix products: default
BLAS/LAPACK: /usr/lib64/R/lib/libRblas.so

locale:
[1] LC_CTYPE=en_US.UTF-8LC_NUMERIC=C   LC_TIME=en_US.UTF-8   
[4] LC_COLLATE=en_US.UTF-8  LC_MONETARY=en_US.UTF-8   LC_MESSAGES=en_US.UTF-8   
[7] LC_PAPER=en_US.UTF-8LC_NAME=C   LC_ADDRESS=C  
[10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C  
 

attached base packages:
[1] stats graphics  grDevices utils datasets  methods   base 

loaded via a namespace (and not attached):
[1] compiler_3.4.1 tools_3.4.1 

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

Re: [R-es] Bucle for que se salte los errores

2017-06-12 Por tema Guillermo.Vinue
Hola,

Creo que sería añadir if(i == 0) next

Saludos,

Guillermo 

> Buenas, �como puedo hacer que el bucle for se salte el error que salta cuando 
> i<-0 en el codigo que paso??
> 
> 
> 
> count <- 0
> for(i in -2:2){
>   z<-1/i
>   z<-z*z
>   modelo<-lm(z~1)
> }
> 
> 
> 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

Re: [R-es] Visualización de un gráfico guardado c omo variable

2017-02-08 Por tema Guillermo.Vinue
Hola Patricio,

Creo que puede ser usando print(bxp01)

Saludos,

Guillermo

> Hola.
> En un análisis estoy guardando un gráfico en una variable, ya que necesito
> utilizar las estadísticas que este genera: bxp01 <- boxplot(var~itv,data),
> específicamente los outliers.
> Luego necesito mostrar la gráfica. Pensaría que solo es llamando a bxp01
> pero se me imprime el objeto. Existe alguna función o necesito llamar
> nuevamente a la función boxplot ???
> 
> 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] Etiquetas en mapas geográficos con ggplot 2 en R

2016-11-25 Por tema Guillermo.Vinue
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

Re: [R-es] Formato numérico

2016-07-06 Por tema Guillermo.Vinue
Hola Mauricio,

Poniendo options(scipen = 999) antes de hacer los cálculos se desactiva la 
notación científica.

Saludos,

Guillermo

> Hola.
> Tengo un problema con el formato de salida de un objeto "numeric", que los
> expresa en formato científico o exponencial.
> > range(total$ImpTotal)
> [1] 5.66 806907887.10
> > Valores <- quantile(total$ImpTotal, c(0, 0.01, 0.02, 0.025, 0.03, 0.05,
> 0.1, 0.25, 0.5, 0.75, 0.9, 0.95, 0.96, 0.97, 0.975, 0.98, 0.99), na.rm=TRUE)
> > class(Valores)
> [1] "numeric"
> > as.data.frame(Valores)
>Valores
> 0%5.66e+00
> 1%4.231960e+01
> 2%6.627980e+01
> 2.5%  7.984900e+01
> 3%9.523880e+01
> 5%1.658285e+02
> 10%   5.012610e+02
> 25%   5.148675e+03
> 50%   6.589807e+04
> 75%   5.851804e+05
> 90%   3.594278e+06
> 95%   9.635249e+06
> 96%   1.274523e+07
> 97%   1.771101e+07
> 97.5% 2.212963e+07
> 98%   2.902357e+07
> 99%   5.281599e+07
> Me parece recordar que en la lista ya se consultó, pero sinceramente no
> encuentro la respuesta. ¿Es posible pedirle a R que presente los números
> sin pasarlos al formato exponencial? La única opción que encontré es
> dividirlos por Millón (M<-100) y luego round(Valores, 3) por ejemplo, y
> así funciona. Pero, ¿No hay una forma de evitar la notación sin transformar?
> Gracias y saludos.
> -- 
> Mauricio
> 
>   [[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] Método S3 paquete

2015-07-29 Por tema Guillermo.Vinue
Hola Rubén,

Muchas gracias. 

Un saludo,

Guillermo

> Hola a ambos,
> 
>  Otra referencia que puede ser de interés es: 
> http://r-pkgs.had.co.nz y también http://adv-r.had.co.nz (las dos de 
> Hadley Wickham...)
> 
>  Un saludo, Rubén.
> 
> 
> El 27/07/2015 a las 10:46, guillermo.vi...@uv.es escribió:
> > Hola Carlos,
> >
> > Muchas gracias por el enlace, me ha sido de gran ayuda. Ya he entendido
> > cómo funciona el sistema S3.
> >
> > Un saludo,
> >
> > Guillermo
> >
> >> Hola, ¿qué tal?
> >>
> >> Sigue
> >
http://www.datanalytics.com/2011/08/04/desarrollo-de-paquetes-con-r-iv-funciones-genericas/
> >> a rajatabla y lo tendrás.
> >>
> >> Un saludo,
> >>
> >> Carlos J. Gil Bellosta
> >> http://www.datanalytics.com
> >>
> >> P.D.: Si te fijas bien, no estás siguiendo esa guía "a rajatabla".
> >>
> >> El día 23 de julio de 2015, 16:26,   escribió:
> >>> Hola,
> >>>
> >>> Estoy tratando de crear un método S3 llamado "anthr" dentro del
paquete
> >>> que estoy desarrollando, cuyo argumento principal es "res" que
> >>> básicamente es una lista con un solo componente. Pero si el segundo
> >>> argumento llamado "oneSize" es FALSE, "res" es una lista de listas.
> >>>
> >>> Lo que he escrito hasta el momento es lo siguiente:
> >>>
> >>> anthr <- function(res, oneSize, nsizes){
> >>>UseMethod("anthr")
> >>> }
> >>>
> >>> anthr.tri <- function(res, oneSize, nsizes){
> >>>
> >>>if(oneSize){
> >>>  cases <- c()
> >>>  cases <- res$meds
> >>>}else{
> >>>  cases <- list()
> >>>  for (i in 1 : (nsizes - 1)){
> >>>cases[[i]] <- res[[i]]$meds
> >>>  }
> >>>}
> >>>return(cases)
> >>> }
> >>>
> >>> El problema cuando instalo el paquete y utilizo este método, es
que R no
> >>> me reconoce que "res" sea una lista. En concreto, me aparece este
error:
> >>>
> >>> Error in UseMethod("anthr") :
> >>>no applicable method for 'anthr' applied to an object of class
"list"
> >>>
> >>> He tratado de añadir esto:
> >>>
> >>> tri <- function(x){
> >>>   value <- list(meds = x$meds)
> >>>   attr(value, "class") <- "tri"
> >>>   value
> >>> }
> >>>
> >>> pero sigue sin funcionarme. ¿Alguien puede ofrecerme alguna ayuda? .
> >>>
> >>> 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
> >
> 
> ___
> 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] Método S3 paquete

2015-07-27 Por tema Guillermo.Vinue
Hola Carlos,

Muchas gracias por el enlace, me ha sido de gran ayuda. Ya he entendido
cómo funciona el sistema S3.

Un saludo,

Guillermo

> Hola, ¿qué tal?
> 
> Sigue
http://www.datanalytics.com/2011/08/04/desarrollo-de-paquetes-con-r-iv-funciones-genericas/
> a rajatabla y lo tendrás.
> 
> Un saludo,
> 
> Carlos J. Gil Bellosta
> http://www.datanalytics.com
> 
> P.D.: Si te fijas bien, no estás siguiendo esa guía "a rajatabla".
> 
> El día 23 de julio de 2015, 16:26,   escribió:
> > Hola,
> >
> > Estoy tratando de crear un método S3 llamado "anthr" dentro del paquete
> > que estoy desarrollando, cuyo argumento principal es "res" que
> > básicamente es una lista con un solo componente. Pero si el segundo
> > argumento llamado "oneSize" es FALSE, "res" es una lista de listas.
> >
> > Lo que he escrito hasta el momento es lo siguiente:
> >
> > anthr <- function(res, oneSize, nsizes){
> >   UseMethod("anthr")
> > }
> >
> > anthr.tri <- function(res, oneSize, nsizes){
> >
> >   if(oneSize){
> > cases <- c()
> > cases <- res$meds
> >   }else{
> > cases <- list()
> > for (i in 1 : (nsizes - 1)){
> >   cases[[i]] <- res[[i]]$meds
> > }
> >   }
> >   return(cases)
> > }
> >
> > El problema cuando instalo el paquete y utilizo este método, es que R no
> > me reconoce que "res" sea una lista. En concreto, me aparece este error:
> >
> > Error in UseMethod("anthr") :
> >   no applicable method for 'anthr' applied to an object of class "list"
> >
> > He tratado de añadir esto:
> >
> > tri <- function(x){
> >  value <- list(meds = x$meds)
> >  attr(value, "class") <- "tri"
> >  value
> > }
> >
> > pero sigue sin funcionarme. ¿Alguien puede ofrecerme alguna ayuda? .
> >
> > 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


[R-es] Método S3 paquete

2015-07-23 Por tema Guillermo.Vinue
Hola,

Estoy tratando de crear un método S3 llamado "anthr" dentro del paquete
que estoy desarrollando, cuyo argumento principal es "res" que
básicamente es una lista con un solo componente. Pero si el segundo
argumento llamado "oneSize" es FALSE, "res" es una lista de listas.

Lo que he escrito hasta el momento es lo siguiente:

anthr <- function(res, oneSize, nsizes){
  UseMethod("anthr")
}

anthr.tri <- function(res, oneSize, nsizes){
  
  if(oneSize){
cases <- c() 
cases <- res$meds
  }else{
cases <- list()
for (i in 1 : (nsizes - 1)){
  cases[[i]] <- res[[i]]$meds
}
  }
  return(cases)
} 

El problema cuando instalo el paquete y utilizo este método, es que R no
me reconoce que "res" sea una lista. En concreto, me aparece este error:

Error in UseMethod("anthr") : 
  no applicable method for 'anthr' applied to an object of class "list"

He tratado de añadir esto:

tri <- function(x){
 value <- list(meds = x$meds)  
 attr(value, "class") <- "tri"   
 value
}

pero sigue sin funcionarme. ¿Alguien puede ofrecerme alguna ayuda?.

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


Re: [R-es] Duda glmer

2015-06-11 Por tema Guillermo.Vinue
Muchas gracias por tu respuesta y el código Olivier, me es de mucha ayuda.

Un saludo,

Guillermo

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


[R-es] Duda glmer

2015-06-10 Por tema Guillermo.Vinue
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


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