Re: [R-es] Hacer un Split plot

2023-10-11 Por tema Manuel Mendoza
Por si te fuera de utilidad, esta es la respuesta de chat GPT 4.0

Parece que tienes un par de problemas y preguntas aquí. Intentaré ayudarte
paso a paso.

### Problema 1: Error en la Separación de Medias HSD por Tratamiento

Sobre el código que estás utilizando para la separación de medias, el error
específico que estás recibiendo `argument "trt" is missing, with no
default` posiblemente se relaciona con la función `HSD.test`. Vamos a
revisar el bloque de código que has compartido:

```r
by(, $TRAT, function(x) {
  anova_result <- aov(RTOSE ~ CORTE, data = x)
  HSD_result <- HSD.test(anova_result)
  Tratamiento <- unique(x$TRAT)
  return(list(Tratamiento = TRAT, HSD_result = HSD_result))
})
```

Si estás utilizando la función `HSD.test` del paquete `agricolae`,
asegúrate de proporcionar todos los argumentos necesarios para esta
función, que serían el objeto de anova, el nombre del tratamiento y el
nivel de significancia. Por ejemplo:

```r
HSD_result <- HSD.test(anova_result, "CORTE", group=TRUE, console=TRUE)
```

Además, asegúrate de que la variable `TRAT` está disponible en el scope de
tu función; en tu código, pareces utilizar `Tratamiento` para almacenar el
valor único de `x$TRAT`, pero intentas devolver una variable llamada `TRAT`
que no está definida. Tal vez quisiste hacer esto:

```r
return(list(Tratamiento = Tratamiento, HSD_result = HSD_result))
```

### Problema 2: Comparación de Dos Métodos para ANOVA de Split Plot

Tienes dos bloques de código para ANOVA:

1. `model <- with(CEPAS, sp.plot(REP, CEPA, VARIEDAD, trAUDPC))`
2. `model2.aov <- aov(trAUDPC ~ CEPA*VARIEDAD + REP + Error(REP/CEPA))`

Dado que no tengo toda la información sobre las funciones y los datos, es
un poco difícil decir con certeza si ambos realizan un ANOVA de split plot
de la misma manera.

- La función `sp.plot` no es estándar en R y puede ser parte de un paquete
específico o un script personalizado que no estoy familiarizado con. Si
proporcionas más información sobre esta función, podría ayudarte mejor.
- La segunda línea de código parece utilizar la función `aov` de una manera
que podría ser coherente con un diseño de split plot, especificando un
término de error estratificado `Error(REP/CEPA)`, pero sin tener acceso a
los datos y más contexto, es un poco difícil de verificar.

Si los resultados que obtienes son diferentes, aquí hay algunas cosas que
querrás revisar:

- **Datos**: Asegúrate de que los datos que se están utilizando son
exactamente los mismos en ambos análisis.
- **Modelo**: Verifica que los modelos que estás ajustando sean
equivalentes y apropiados para tu diseño experimental.
- **Hipótesis**: Confirma que las hipótesis que se están probando sean las
mismas.

Recuerda que proporcionar un ejemplo reproducible (datos de ejemplo y
código) es la mejor manera de obtener ayuda específica y precisa. Si puedes
compartir más detalles, estaré encantado de ayudarte más!

El mié, 11 oct 2023 a las 10:32, Relloso Barrio, Juan Bautista
() escribió:

> Buenos días.
>
> Perdón por insistir. Quiero hacer un ANOVA para unos datos que tienen un
> diseño Split plot.
>
> Y estoy utilizando dos editores diferentes, que, si todo fuera correcto y
> ya que toman los mismos datos, me debería dar el mismo resultado, … pero no
> es así.
>
> Querría saber si básicamente los dos hacen un análisis de varianza SPLIT
> PLOT ?. Y el mismo análisis?
>
> Los comandos que doy son estos:
>
> CEPAS, es el nombre del archivo de datos.
>
> model<-with(CEPAS, sp.plot(REP, CEPA, VARIEDAD, trAUDPC))
>
> Y el otro es este
>
> model2.aov<- aov(trAUDPC~CEPA*VARIEDAD+REP+Error(REP/CEPA))
>
>
>
>  Un saludo.
>
> *Juan Bautista Relloso Barrio*
>
> Coordinador de Equipos e Infraestructuras | Técnico de Cultivos del
> Departamento de Producción Vegetal
>
> Talde eta Azpiegitura Koordinatzailea | Laborantza teknikaria Landare
> Ekoizpen Departamentua
>
> jbauti...@neiker.eus | M. 688 62 98 14
>
> *www.neiker.eus* 
> 
>  
> 
>
> *[image: ej_ekonomia_garapen_lateral]*  [image:
> https://www.emakunde.euskadi.eus/contenidos/informacion/violencia_puntolila/eu_def/adjuntos/punto.lila.jpg]
>
>
>
> PRIBATUTASUN POLITIKA  | 
> POLÍTICA
> DE PRIVACIDAD  | LEGAL NOTICE
> 
>
>
>
>
>
>
>
> *De:* R-help-es  *En nombre de *Relloso
> Barrio, Juan Bautista
> *Enviado el:* viernes, 22 de septiembre de 2023 16:18
> *Para:* r-help-es@r-project.org
> *Asunto:* [R-es] no encuentro el error
>
>
>
> Buenas tardes.
>
> Intento hacer la separación de medias “por tratamientos”
>
> Pero me da un error que no consigo corregir. No sé que hago mal. Os paso
> los comandos y el error
>
>
>
> # Separación de medias HSD por Tratamiento No funciona
>
> by(, 

Re: [R-es] stackOverflowError

2023-09-05 Por tema Manuel Mendoza
Esta es la respuesta que me da chatgpt 4.0. Yo llevo unos meses
utilizándolo y me ha ahorrado muchos días de trabajo. Le podéis hacer
cualquier pregunta sobre códigos, errores, métodos, cómo hacer algo, cómo
enfocar un problema, etc. Es como tener a un experto (que también se
equivoca) a tu disposición las 24 horas.  Ya nos dirás si te fue de
utilidad.
Un saludo

Un "StackOverflowError" generalmente no es causado por falta de RAM, sino
más bien por un problema de diseño del código que genera una recursividad
infinita o una acumulación demasiado grande de marcos de pila. Sin embargo,
dado que comentas que estás ejecutando una operación con una gran cantidad
de datos, sería útil considerar optimizaciones tanto en el código como en
la configuración del entorno donde se ejecuta el programa.

Aquí hay algunas estrategias generales para abordar este tipo de problema:

### Optimización de código
1. **Divide y vencerás**: Si es posible, divide el dataset en partes más
pequeñas y procesa cada una por separado.
2. **Vectorización**: En lugar de iterar a través de los datos, usa
operaciones vectorizadas si estás trabajando con bibliotecas que las
soportan (como NumPy en Python).
3. **Utiliza consultas más eficientes**: Si estás usando SQL u otro
lenguaje de consulta, asegúrate de que tus consultas sean lo más eficientes
posible.
4. **Optimiza las condiciones**: Si tienes una larga cadena de condiciones
OR, trata de organizarlas de tal manera que las condiciones más probables
se evalúen primero.

### Optimización de recursos
1. **Aumentar la pila del programa**: Algunos entornos te permiten ajustar
el tamaño de la pila. Por ejemplo, en Java, puedes usar la opción `-Xss`
para establecer el tamaño de la pila.
2. **Usar más RAM**: Si estás trabajando en un lenguaje de programación que
permite ajustar el uso de la memoria, podrías intentar asignar más memoria
al entorno de ejecución.

### Otras herramientas
Si tienes éxito con SPSS, pero no con otra herramienta, puede ser que SPSS
tenga optimizaciones específicas para este tipo de tarea. Considera
exportar los datos procesados desde SPSS para seguir trabajando con ellos
en la otra herramienta si eso resuelve el problema más eficientemente.

### Uso de Herramientas Específicas
También puedes considerar el uso de bibliotecas o herramientas específicas
diseñadas para manejar grandes conjuntos de datos, como Dask para Python,
que es bueno para trabajar con conjuntos de datos que no caben en la
memoria.

Sin acceso al código específico o más detalles sobre el problema, es
difícil ofrecer una solución más concreta. Sin embargo, espero que estas
estrategias generales te ayuden a abordar el problema.

El mar, 5 sept 2023 a las 10:24, Enrique Ramalle Gomara via R-help-es (<
r-help-es@r-project.org>) escribió:

> Buenos dias
>
> tengo un procedimiento de selección de casos que cumplen una condición u
> otra u otra u otra, etc. La condición se repite para 20 variables y son
> condiciones múltiples (más de 50) que he unido con un OR (|). Afecta a una
> base de datos con mas de 14 filas. Cuando lo ejecuta me da
> "stackOverflowError". Alguna solución para dedicar más RAM al
> procedimiento? o alguna otra solución? El mismo procedimiento lo he
> ejecutado en SPSS y no da problemas
>
> Saludos, muchas Gracias
> Enrique
> ___
> 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-es] drop-column importance

2023-08-28 Por tema Manuel Mendoza
Muy buenas, ¿alguien conoce algún paquete que permita calcular  drop-column
importance  para distintos tipos de algoritmos, como RF o GBM? Programarlo
yo sé, pero busco algún paquete que ya lo haga.
Gracias,
Manuel

[[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] Expresión en un objeto

2023-08-11 Por tema Manuel Mendoza
No tuve tiempo de mirarlo, pero, ¿es coherente lo que dice?

El vie, 11 ago 2023 a las 21:02, Griera-yandex ()
escribió:

> Muchas gracias, Manuel:
>
> Que bueno! No se me había ocurrido lo de GPT!
>
> Lo pruebo.
>
> Saludos.
>
> On Fri, 11 Aug 2023 18:15:18 +0200
> Manuel Mendoza  wrote:
>
> > Esta es la respuesta que te da ChatGPT-4:
> >
> > Entiendo tu pregunta y, aunque no hay una función nativa en R que te
> > permita hacer exactamente lo que estás pidiendo, puedes lograr el mismo
> > resultado utilizando una función. Una función te permitiría encapsular la
> > lógica de la expresión que quieres reutilizar y luego llamar a esa
> función
> > donde sea necesario.
> >
> > He aquí cómo podrías hacerlo:
> >
> > V1  <- c(47, 71, 41, 23, 83, 152, 82, 8, 160, 18)
> > V2a <- c(NA, 36, 15, 5, 56, 18, NA, 5, NA, 5)
> > V2b <- c(37, NA, 15, NA, NA, NA, 90, NA, 161, NA)
> >
> > # Definir una función que encapsula la lógica de la expresión
> > myFunc <- function(V2a, V2b) {
> >   ifelse(is.na(V2a) & !is.na(V2b), V2b, V2a)
> > }
> >
> > # Luego puedes usar esa función donde necesites la expresión
> > V3 <- ((myFunc(V2a, V2b) - V1)/V1)*100
> > V4 <- ifelse(!is.na(((myFunc(V2a, V2b)-V1)/V1)*100),
> ifelse(((myFunc(V2a,
> > V2b)-V1)/V1)*100 > 0, "1", "0"), NA)
> > ```
> >
> > Definir la lógica dentro de una función te brinda la flexibilidad de
> > reutilizar esa lógica en diferentes partes de tu código sin tener que
> > repetir la misma expresión una y otra vez. Esto hace que tu código sea
> más
> > fácil de leer y mantener.
> >
> >
> >
> > El jue, 10 ago 2023 a las 19:36, Griera () escribió:
> >
> > > Hola a todos:
> > >
> > > Se me ha planteado un problema que no está ligado a ningún problema
> > > concreto. Es más teórico.
> > >
> > > Supongamos que tenemos tres variables:
> > >
> > > V1  <- c (47, 71,  41,  23,  83, 152,  82,   8, 160,  18)
> > > V2a <- c (NA, 36,  15,   5,  56,  18,  NA,   5,  NA,   5)
> > > V2b <- c (37, NA,  15,  NA,  NA,  NA,  90,  NA,  161, NA)
> > >
> > > Supongamos que tengo la expresión (que no puedo asignarlo a ninguna
> > > variable):
> > >
> > > (ifelse (is.na (V2a) & ! is.na (V2b), V2b,  V2a))
> > >
> > > Supongamos que tengo que utilizar esta expresión dos o más veces y no
> > > puedo utilizar ni un xapply () ni un bucle. Por ejemplo:
> > >
> > > V3 <- (((ifelse (is.na (V2a) & ! is.na (V2b), V2b,  V2a)) -
> V1)/V1)*100
> > > V4 <-   ifelse (! is.na ifelse (is.na (V2a) & ! is.na (V2b),
> > > V2b,  V2a))-V1)/V1)*100), ifelse ifelse (is.na (V2a) & ! is.na
> > > (V2b), V2b,  V2a))-V1)/V1)*100 > 0, "1", "0"), NA)
> > >
> > > Hay alguna forma de almacenar la expresión "(ifelse (is.na (V2a) & !
> > > is.na (V2b), V2b,  V2a))" en un objeto y utilizar el nombre del objeto
> > > en las ordenes (por ejemplo, con una hipotética función xfunc ()). Por
> > > ejemplo:
> > >
> > > ORD <- "(ifelse (is.na (V2a) & ! is.na (V2b), V2b,  V2a))"
> > > V3 <- ((xfunc (ORD) - V1)/V1)*100
> > > V4 <-   ifelse (! is.na (((xfunc (ORD)-V1)/V1)*100), ifelse
> > > (((xfunc (ORD)-V1)/V1)*100 > 0, "1", "0"), NA)
> > >
> > >
> > > El ejemnplo és absurdo, pero solo lo presento como un hipotético
> ejercicio.
> > >
> > > Muchas gracias por la ayuda.
> > >
> > > ___
> > > 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] Expresión en un objeto

2023-08-11 Por tema Manuel Mendoza
Esta es la respuesta que te da ChatGPT-4:

Entiendo tu pregunta y, aunque no hay una función nativa en R que te
permita hacer exactamente lo que estás pidiendo, puedes lograr el mismo
resultado utilizando una función. Una función te permitiría encapsular la
lógica de la expresión que quieres reutilizar y luego llamar a esa función
donde sea necesario.

He aquí cómo podrías hacerlo:

V1  <- c(47, 71, 41, 23, 83, 152, 82, 8, 160, 18)
V2a <- c(NA, 36, 15, 5, 56, 18, NA, 5, NA, 5)
V2b <- c(37, NA, 15, NA, NA, NA, 90, NA, 161, NA)

# Definir una función que encapsula la lógica de la expresión
myFunc <- function(V2a, V2b) {
  ifelse(is.na(V2a) & !is.na(V2b), V2b, V2a)
}

# Luego puedes usar esa función donde necesites la expresión
V3 <- ((myFunc(V2a, V2b) - V1)/V1)*100
V4 <- ifelse(!is.na(((myFunc(V2a, V2b)-V1)/V1)*100), ifelse(((myFunc(V2a,
V2b)-V1)/V1)*100 > 0, "1", "0"), NA)
```

Definir la lógica dentro de una función te brinda la flexibilidad de
reutilizar esa lógica en diferentes partes de tu código sin tener que
repetir la misma expresión una y otra vez. Esto hace que tu código sea más
fácil de leer y mantener.



El jue, 10 ago 2023 a las 19:36, Griera () escribió:

> Hola a todos:
>
> Se me ha planteado un problema que no está ligado a ningún problema
> concreto. Es más teórico.
>
> Supongamos que tenemos tres variables:
>
> V1  <- c (47, 71,  41,  23,  83, 152,  82,   8, 160,  18)
> V2a <- c (NA, 36,  15,   5,  56,  18,  NA,   5,  NA,   5)
> V2b <- c (37, NA,  15,  NA,  NA,  NA,  90,  NA,  161, NA)
>
> Supongamos que tengo la expresión (que no puedo asignarlo a ninguna
> variable):
>
> (ifelse (is.na (V2a) & ! is.na (V2b), V2b,  V2a))
>
> Supongamos que tengo que utilizar esta expresión dos o más veces y no
> puedo utilizar ni un xapply () ni un bucle. Por ejemplo:
>
> V3 <- (((ifelse (is.na (V2a) & ! is.na (V2b), V2b,  V2a)) - V1)/V1)*100
> V4 <-   ifelse (! is.na ifelse (is.na (V2a) & ! is.na (V2b),
> V2b,  V2a))-V1)/V1)*100), ifelse ifelse (is.na (V2a) & ! is.na
> (V2b), V2b,  V2a))-V1)/V1)*100 > 0, "1", "0"), NA)
>
> Hay alguna forma de almacenar la expresión "(ifelse (is.na (V2a) & !
> is.na (V2b), V2b,  V2a))" en un objeto y utilizar el nombre del objeto
> en las ordenes (por ejemplo, con una hipotética función xfunc ()). Por
> ejemplo:
>
> ORD <- "(ifelse (is.na (V2a) & ! is.na (V2b), V2b,  V2a))"
> V3 <- ((xfunc (ORD) - V1)/V1)*100
> V4 <-   ifelse (! is.na (((xfunc (ORD)-V1)/V1)*100), ifelse
> (((xfunc (ORD)-V1)/V1)*100 > 0, "1", "0"), NA)
>
>
> El ejemnplo és absurdo, pero solo lo presento como un hipotético ejercicio.
>
> Muchas gracias por la ayuda.
>
> ___
> 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] Error: protect(): protection stack overflow

2023-05-29 Por tema Manuel Mendoza
Gracias Carlos e Isidro, finalmente utilicé el propio XgBoost para
seleccionar las variables con las que hacer el RF. Había 47, de las casi
55.000, que mostraban una ganancia superior que el resto, así que hice el
RF con esas sin problema. La idea original era aplicar RF para seleccionar
las variables más importantes por su contribución a la predicción,
utilizando meandecraseaccuracy, y es lo que hice, aunque partiendo de esas
47. Resultó que con tan solo 5 genes puedo predecir la malignidad de
tumores (neurofibromas) con una sensibilidad del 98%. Un hallazgo
interesante.
Gracias de nuevo,
Manuel

El dom, 28 may 2023 a las 21:58, Carlos Ortega ()
escribió:

> Hola Manuel,
>
> "ranger" paraleliza de forma automática, usando todos los cores que
> tienes. Está bastante optimizado...
>
> El que se quede sin memoria, puede tener que ver, tanto por el número de
> columnas que comentas, como que alguna de tus variables (o varias) si es
> categórica y tiene múltiples niveles esas 54973 columnas pueden aumentar
> mucho ("ranger" hace un one-hot interno).
>
> Y si el problema son las columnas. ¿Tienes que usar todas las columnas?.
> Puedes plantearte alguna alternativa para seleccionar las variables
> importantes. El paquete "Boruta" es uno de ellos, pero también puedes hacer
> diferentes modelos en modo "boostrap" seleccionado diferentes columnas para
> ver con cuáles quedarte al final.
>
> Y otra alternativa cuando tienes problemas de memoria, es usar H2O
> Gestiona muy bien la memoria.
>
> Gracias,
> Carlos.
>
> El dom, 28 may 2023 a las 13:29, Manuel Mendoza (<
> mmend...@fulbrightmail.org>) escribió:
>
>> Muy buenas, estoy aplicando random forest a una df de 256 filas y 54973
>> columnas y me quedo sin memoria. He probado con randomForest y con ranger,
>> y con los dos pasa. ¿Tenéis alguna solución para esto (que no sea
>> comprarse
>> un ordenador más potente:-) ?. Pude aplicar XgBoost, incluso cerca de 2000
>> veces  (unas 16 horas), para optimizar los hiperparámetros con una rejilla
>> de búsqueda, pero XgBoost utiliza varios núcleos a la vez. No sé si hay
>> forma de hacer que randomForest o ranger utilicen más núcleos. Cualquier
>> otra solución sería buena, claro.
>> Gracias,
>> Manuel
>>
>> [[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-es] Error: protect(): protection stack overflow

2023-05-28 Por tema Manuel Mendoza
Muy buenas, estoy aplicando random forest a una df de 256 filas y 54973
columnas y me quedo sin memoria. He probado con randomForest y con ranger,
y con los dos pasa. ¿Tenéis alguna solución para esto (que no sea comprarse
un ordenador más potente:-) ?. Pude aplicar XgBoost, incluso cerca de 2000
veces  (unas 16 horas), para optimizar los hiperparámetros con una rejilla
de búsqueda, pero XgBoost utiliza varios núcleos a la vez. No sé si hay
forma de hacer que randomForest o ranger utilicen más núcleos. Cualquier
otra solución sería buena, claro.
Gracias,
Manuel

[[alternative HTML version deleted]]

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


[R-es] Deep learning ¿Alguna recomendación?

2023-05-15 Por tema Manuel Mendoza
Muy buenas, he decidido aplicar Deep learning en mi trabajo y me he
encontrado con que hay numerosos paquetes, que utilizan, además, distintos
algoritmos de optimización. Encontré ejemplos muy sencillos de aplicar con
los paquetes deepnet y neuralnet, pero pienso que quizás haya paquetes
claramente mejores ¿Alguna recomendación?
Gracias,
Manuel

[[alternative HTML version deleted]]

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


[R-es] Cambiar orden top-down stacked area ggplot2

2023-03-26 Por tema Manuel Mendoza
Buenos días, con el código de abajo obtengo un agregate que empieza por
abajo con la categoría C7 y termina arriba por la C1. Me gustaría que
fuera al revés, que la C1 estuviera abajo y ascendiera hasta tener la C7
arriba.
Gracias,
Manuel

year<-c(rep(1990, times=7),rep(2018, times=7),rep(2040, times=7),rep(2060,
times=7),rep(2080, times=7),rep(2100, times=7))
cat<-c(rep(c("C1","C2","C3","C4","C5","C6","C7"), times=6))
sbcd<-c(0, 0, 0, 0, 0, 0, 0, 90, 164, 132, 175, 234, 6, 0, 265, 73, 143,
595, 560, 94, 3, 256, 72, 157, 657, 618, 143, 3, 279, 75, 180, 688, 711,
205, 5, 275, 95, 185, 672, 817, 305, 5)
data <- data.frame(year, sbcd, cat)

ggplot(data, aes(x=year, y=sbcd, fill=cat)) +
  geom_area()+

scale_fill_manual(values=c("lightgoldenrodyellow","#FEE391","#FEC44F","#FE9929","#CD6600","#8B1A1A","red"))

[[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] ver el código de randomForest

2023-03-19 Por tema Manuel Mendoza
Gracias Marcelino, eso era exactamente lo que necesitaba saber, cómo se
accede a los códigos. Tomo nota de todo lo que me dices.
Gracias también a  griera. Vi que en la carpeta R están todos los códigos.
Cuando pueda les echaré un ojo.
Saludos,
Manuel

El dom, 19 mar 2023 a las 11:33, Marcelino de la Cruz Rot (<
marcelino.delac...@urjc.es>) escribió:

> Buenos días:
> Otra opción es escribir directamente el nombre de la función en la
> consola de R:
>
>  > randomForest
> function (x, ...)
> UseMethod("randomForest")
>
>
> En este caso, la función randomForest() llama a UseMethod() para
> seleccionar el método adecuado.
> Podemos ver los métodos para randomForest con la función methods():
>
>  > methods(randomForest)
> [1] randomForest.default* randomForest.formula*
>
>
> Vemos que hay dos métodos. Si no estuviesen  señalados con un asterisco
> podríamos escribir su nombre en la consola y acceder al código, pero
> como tiene asterisco, para ver el código deberás usar la función
> getAnywhere():
>
> getAnywhere(randomForest.default)
>
>
> Un saludo,
> Marcelino
>
>
>
> El 19/03/2023 a las 7:51, gri...@yandex.com escribió:
> > Hola:
> >
> > No se muy bien si es esto lo que preguntas, pero el código de todos los
> scripts está en el fichero:
> >
> > https://cran.r-project.org/src/contrib/randomForest_4.7-1.1.tar.gz
> >
> > Saludos.
> >
> > On Sun, 19 Mar 2023 04:35:44 +0100
> > Manuel Mendoza  wrote:
> >
> >> Buenos días, ¿cómo podría ver el código con el que el paquete
> randomForest
> >> hace el random forest?
> >> Gracias,
> >> Manuel
> >>
> >>  [[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
>
>
> --
> Marcelino de la Cruz Rot
> Depto. de Biología y Geología
> Física y Química Inorgánica
> Universidad Rey Juan Carlos
> Móstoles España
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

[[alternative HTML version deleted]]

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


[R-es] ver el código de randomForest

2023-03-18 Por tema Manuel Mendoza
Buenos días, ¿cómo podría ver el código con el que el paquete randomForest
hace el random forest?
Gracias,
Manuel

[[alternative HTML version deleted]]

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


[R-es] vector a partir de los datos de una tabla

2023-02-28 Por tema Manuel Mendoza
Muy fácil: as.numeric(table(data$Clst)

No salía porque la tabla era de otros datos.

Un saludo,
Manuel

[[alternative HTML version deleted]]

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


[R-es] vector a partir de los valores de una tabla

2023-02-28 Por tema Manuel Mendoza
Muy buenas, necesito crear un vector a partir de los valores de una tabla
como la de abajo. Debe ser algo muy fácil pero no lo encuentro en la web.
Gracias,
Manuel

246, 345, 401, 131,125, 69 a partir de:

TS1  TS2  TS3  TS4   TS5  TS6
246  345   401   131   12569

[[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] (sin asunto)

2023-02-14 Por tema Manuel Mendoza
Gracias Marrcelino y Juan, con paste (y BIOs<-c("BIO2" ...) funcionó.
Un saludo,
Manuel

El mar, 14 feb 2023 a las 8:38, Marcelino de la Cruz Rot (<
marcelino.delac...@urjc.es>) escribió:

> Buenos días:
>
> BIOs<-
> ("BIO1”,”BIO2”,”BIO3","BIO4”,”BIO5”,”BIO6”,”BIO7”,”BIO8","BIO9”,”BIO10”)
> for (j in BIOs) {
>excel <- paste(j,".xlsx", sep="")
>data <- read_excel(excel)
> ...
>
>
> Un saludo,
> Marcelino
>
> El 14/02/2023 a las 6:07, Manuel Mendoza escribió:
> > Buenos días, tengo un conjunto de 10 bases de datos en excel cuyos
> nombres
> > van de BIO1 a BIO10. Quiero hacer un loop en el que me coja una cada vez.
> > He probado lo que os pongo abajo (y otras cosas parecidas) y obviamente
> no
> > funciona. ¿Conocéis alguna forma?
> > Gracias como siempre,
> > Manuel
> >
> > BIOs<-
> > ("BIO1”,”BIO2”,”BIO3","BIO4”,”BIO5”,”BIO6”,”BIO7”,”BIO8","BIO9”,”BIO10”)
> > for (j in 1:length(BIOs)) {
> >data <- read_excel("BIOs[j].xlsx")
> > ...
> >
> >   [[alternative HTML version deleted]]
> >
> > ___
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
> --
> Marcelino de la Cruz Rot
> Depto. de Biología y Geología
> Física y Química Inorgánica
> Universidad Rey Juan Carlos
> Móstoles España
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

[[alternative HTML version deleted]]

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


[R-es] Tomar dfs con for

2023-02-13 Por tema Manuel Mendoza
Perdonad que se me olvidó el asunto. Repito:

Buenos días, tengo un conjunto de 10 bases de datos en excel cuyos nombres
van de BIO1 a BIO10. Quiero hacer un loop en el que me coja una cada vez.
He probado lo que os pongo abajo (y otras cosas parecidas) y obviamente no
funciona. ¿Conocéis alguna forma?
Gracias como siempre,
Manuel

BIOs<-("BIO1”,”BIO2”,”BIO3","BIO4”,”BIO5”,”BIO6”,”BIO7”,”BIO8","BIO9”,”BIO10”)
for (j in 1:length(BIOs)) {
  data <- read_excel("BIOs[j].xlsx")
...

[[alternative HTML version deleted]]

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


[R-es] (sin asunto)

2023-02-13 Por tema Manuel Mendoza
Buenos días, tengo un conjunto de 10 bases de datos en excel cuyos nombres
van de BIO1 a BIO10. Quiero hacer un loop en el que me coja una cada vez.
He probado lo que os pongo abajo (y otras cosas parecidas) y obviamente no
funciona. ¿Conocéis alguna forma?
Gracias como siempre,
Manuel

BIOs<-
("BIO1”,”BIO2”,”BIO3","BIO4”,”BIO5”,”BIO6”,”BIO7”,”BIO8","BIO9”,”BIO10”)
for (j in 1:length(BIOs)) {
  data <- read_excel("BIOs[j].xlsx")
...

[[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] Sumar positivos y negativos por separado

2023-01-02 Por tema Manuel Mendoza
Gracias Carlos, y aprovecho para felicitaros también el año nuevo..
Manuel

El lun, 2 ene 2023 a las 13:03, Carlos Ortega ()
escribió:

> Hola,
>
> Feliz Año!.
> Por no dejar pasar la oportunidad de usar algo más vectorizado... y
> rapidito...
> Incluyo tiempos comprativos.
>
> #-
> > library(mlbench)
> > library(data.table)
> > library(dplyr)
> > library(tictoc)
> >
> > data(Ionosphere)
> > head(Ionosphere)
>   V1 V2  V3   V4   V5   V6   V7   V8  V9
>  V10 V11  V12 V13  V14
> 1  1  0 0.99539 -0.05889  0.85243  0.02306  0.83398 -0.37708 1.0
>  0.03760 0.85243 -0.17755 0.59755 -0.44945
> 2  1  0 1.0 -0.18829  0.93035 -0.36156 -0.10868 -0.93597 1.0
> -0.04549 0.50874 -0.67743 0.34432 -0.69707
> 3  1  0 1.0 -0.03365  1.0  0.00485  1.0 -0.12062 0.88965
>  0.01198 0.73082  0.05346 0.85443  0.00827
> 4  1  0 1.0 -0.45161  1.0  1.0  0.71216 -1.0 0.0
>  0.0 0.0  0.0 0.0  0.0
> 5  1  0 1.0 -0.02401  0.94140  0.06531  0.92106 -0.23255 0.77152
> -0.16399 0.52798 -0.20275 0.56409 -0.00712
> 6  1  0 0.02337 -0.00592 -0.09924 -0.11949 -0.00763 -0.11824 0.14706
>  0.06637 0.03786 -0.06302 0.0  0.0
>V15  V16  V17  V18  V19  V20  V21  V22
>  V23  V24  V25  V26
> 1  0.60536 -0.38223  0.84356 -0.38542  0.58212 -0.32192  0.56971 -0.29674
>  0.36946 -0.47357  0.56811 -0.51171
> 2 -0.51685 -0.97515  0.05499 -0.62237  0.33109 -1.0 -0.13151 -0.45300
> -0.18056 -0.35734 -0.20332 -0.26569
> 3  0.54591  0.00299  0.83775 -0.13644  0.75535 -0.08540  0.70887 -0.27502
>  0.43385 -0.12062  0.57528 -0.40220
> 4 -1.0  0.14516  0.54094 -0.39330 -1.0 -0.54467 -0.69975  1.0
>  0.0  0.0  1.0  0.90695
> 5  0.34395 -0.27457  0.52940 -0.21780  0.45107 -0.17813  0.05982 -0.35575
>  0.02309 -0.52879  0.03286 -0.65158
> 6 -0.04572 -0.15540 -0.00343 -0.10196 -0.11575 -0.05414  0.01838  0.03669
>  0.01519  0.00888  0.03513 -0.01535
>V27  V28  V29  V30  V31  V32  V33  V34
> Class
> 1  0.41078 -0.46168  0.21266 -0.34090  0.42267 -0.54487  0.18641 -0.45300
>  good
> 2 -0.20468 -0.18401 -0.19040 -0.11593 -0.16626 -0.06288 -0.13738 -0.02447
>   bad
> 3  0.58984 -0.22145  0.43100 -0.17365  0.60436 -0.24180  0.56045 -0.38238
>  good
> 4  0.51613  1.0  1.0 -0.20099  0.25682  1.0 -0.32382  1.0
>   bad
> 5  0.13290 -0.53206  0.02431 -0.62197 -0.05707 -0.59573 -0.04608 -0.65697
>  good
> 6 -0.03240  0.09223 -0.07859  0.00732  0.0  0.0 -0.00039  0.12011
>   bad
> >
> > data <- Ionosphere %>% select(where(is.numeric)) %>% as.data.frame()
> >
> *> #-- Vectorizado*
> > tic()
> > myfun <- function(x) {
> +
> +   pos <- sum(x[x > 0])
> +   neg <- sum(x[x < 0])
> +
> +   return(list(pos = pos, neg = neg))
> + }
> >
> > resout <- apply(data, 1, myfun)
> > resend <- rbindlist(resout)
> > toc()
> *0.012 sec elapsed*
> > head(resend)
> pos  neg
>   
> 1:  9.96328 -5.23501
> 2:  4.16949 -8.80629
> 3: 11.59911 -2.19323
> 4: 12.07816 -5.61414
> 5:  6.38876 -5.34692
> 6:  0.60859 -1.01667
> >
> >
> *> # Bucle*
> > tic()
> > pos <-c(rep(0, nrow(data)))
> > neg <- c(rep(0, nrow(data)))
> >
> > for (i in 1:nrow(data)) {
> +   x<-data[i,]
> +   pos[i]<-sum(x[x>0])
> +   neg[i]<-sum(x[x<0])
> + }
> > toc()
> *0.609 sec elapsed*
> > head(pos)
> [1]  9.96328  4.16949 11.59911 12.07816  6.38876  0.60859
> > head(neg)
> [1] -5.23501 -8.80629 -2.19323 -5.61414 -5.34692 -1.01667
>
>
> #-
>
>
>
> Gracias,
> Carlos Ortega
> www.qualityexcellence.es
>
>
>
> El lun, 2 ene 2023 a las 11:58, Manuel Mendoza (<
> mmend...@fulbrightmail.org>) escribió:
>
>> Bueno, funcionó con:
>>
>> pos<-c(0)
>> for (i in 1:nrow(data)) {
>> x<-data[i,]
>> pos[i]<-sum(x[x>0])
>> }
>>
>> y x<0 para los negativos
>>
>> Gracias nuevamente,
>> Manuel
>>
>>
>> El lun, 2 ene 2023 a las 10:23, Proyecto R-UCA () escribió:
>>
>> > Buenas,
>> >
>> > Sin usar dplyr,
>> >
>> > Se puede hacer un bucle en las columnas y para cada columna
>> >
>> > sum(x[x>0])
>> >
>> > sum(x[x < 0])
>> >
>> > Un saludo.
>> >
>> > El lun, 02-01-2023 a las 09:02 +0100, Emilio L. Cano escribió:
>&g

Re: [R-es] Sumar positivos y negativos por separado

2023-01-02 Por tema Manuel Mendoza
Bueno, funcionó con:

pos<-c(0)
for (i in 1:nrow(data)) {
x<-data[i,]
pos[i]<-sum(x[x>0])
}

y x<0 para los negativos

Gracias nuevamente,
Manuel


El lun, 2 ene 2023 a las 10:23, Proyecto R-UCA () escribió:

> Buenas,
>
> Sin usar dplyr,
>
> Se puede hacer un bucle en las columnas y para cada columna
>
> sum(x[x>0])
>
> sum(x[x < 0])
>
> Un saludo.
>
> El lun, 02-01-2023 a las 09:02 +0100, Emilio L. Cano escribió:
> > Hola,
> >
> > Este sería un ejemplo reproducible rápido. A mí para esto me gusta
> rowise() de {dplyr}. En c_across() se pueden seleccionar las columnas a
> > conveniencia. Seguramente haya una forma de evitar crear las funciones.
> Si la suma la quieres en valor absoluto multiplicas por -1 en
> > suma_neg y listo.
> >
> > Un saludo,
> > Emilio
> >
> >
> > > set.seed(2023)
> > > d <- data.frame(a = round(rnorm(10), 1),
> > + b = round(rnorm(10), 1),
> > + c = round(rnorm(10), 1))
> > > d
> >   abc
> > 1  -0.1  0.3 -0.4
> > 2  -1.0 -0.4 -0.3
> > 3  -1.9  0.6  1.2
> > 4  -0.2  0.7  0.2
> > 5  -0.6 -0.6 -0.4
> > 6   1.1  0.7 -1.8
> > 7  -0.9  0.6 -0.6
> > 8   1.0  0.5 -0.9
> > 9  -0.4  0.9  1.5
> > 10 -0.5  0.6  2.7
> > >
> > > library(dplyr)
> > >
> > > suma_pos <- function(x){
> > +   sum((x>0)*x)
> > + }
> > > suma_neg <- function(x){
> > +   sum((x<0)*x)
> > + }
> > >
> > > d |>
> > +   rowwise() |>
> > +   mutate(positivos = suma_pos(c_across()),
> > +  negativos = suma_neg(c_across()))
> > # A tibble: 10 × 5
> > # Rowwise:
> >a b c positivos negativos
> >
> >  1  -0.1   0.3  -0.4   0.3  -0.5
> >  2  -1-0.4  -0.3   0-1.7
> >  3  -1.9   0.6   1.2   1.8  -1.9
> >  4  -0.2   0.7   0.2   0.9  -0.2
> >  5  -0.6  -0.6  -0.4   0-1.6
> >  6   1.1   0.7  -1.8   1.8  -1.8
> >  7  -0.9   0.6  -0.6   0.6  -1.5
> >  8   1 0.5  -0.9   1.5  -0.9
> >  9  -0.4   0.9   1.5   2.4  -0.4
> > 10  -0.5   0.6   2.7   3.3  -0.5
> >
> >
> >
> > > El 2 ene 2023, a las 6:31, Manuel Mendoza 
> escribió:
> > >
> > > Buenos días, de un conjunto de variables, quiero obtener la suma de los
> > > valores positivos de cada fila, por una parte, y la de los negativos
> por
> > > otra. Qué variables toman valores positivos y negativos varía de una
> fila a
> > > otra, claro.
> > > Gracias por vuestra ayuda,
> > > Manuel
> > >
> > > [[alternative HTML version deleted]]
> > >
> > > ___
> > > R-help-es mailing list
> > > R-help-es@r-project.org
> > >
> https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help-es__;!!D9dNQwwGXtA!XPbjkJgKEEP5dmap64bNfzfAmIe4ArK_nN4H9-QIBPAihE4aO-RS6q6YAaM3IT-sP9qA0PqeGoqQF7gIlec$
> > >
> >
> >
> > [[alternative HTML version deleted]]
> >
> > ___
> > R-help-es mailing list
> > R-help-es@r-project.org
> >
> https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help-es__;!!D9dNQwwGXtA!XPbjkJgKEEP5dmap64bNfzfAmIe4ArK_nN4H9-QIBPAihE4aO-RS6q6YAaM3IT-sP9qA0PqeGoqQF7gIlec$
> >
> ___
> 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] Sumar positivos y negativos por separado

2023-01-02 Por tema Manuel Mendoza
Gracias Emilio y Proyecto R-UCA, no consigo implementar ninguna de vuestras
propuestas.
En la de Emilio sale bien hasta las funciones, incluidas, pero no entiendo
a partir de: d |>
y me da error.

Respecto a sum(x[x>0]), lamento deciros que  tampoco  lo entiendo ni
consigo implementarlo

¿Podríais darme más detalles?

Gracias,
Manuel


El lun, 2 ene 2023 a las 10:23, Proyecto R-UCA () escribió:

> Buenas,
>
> Sin usar dplyr,
>
> Se puede hacer un bucle en las columnas y para cada columna
>
> sum(x[x>0])
>
> sum(x[x < 0])
>
> Un saludo.
>
> El lun, 02-01-2023 a las 09:02 +0100, Emilio L. Cano escribió:
> > Hola,
> >
> > Este sería un ejemplo reproducible rápido. A mí para esto me gusta
> rowise() de {dplyr}. En c_across() se pueden seleccionar las columnas a
> > conveniencia. Seguramente haya una forma de evitar crear las funciones.
> Si la suma la quieres en valor absoluto multiplicas por -1 en
> > suma_neg y listo.
> >
> > Un saludo,
> > Emilio
> >
> >
> > > set.seed(2023)
> > > d <- data.frame(a = round(rnorm(10), 1),
> > + b = round(rnorm(10), 1),
> > + c = round(rnorm(10), 1))
> > > d
> >   abc
> > 1  -0.1  0.3 -0.4
> > 2  -1.0 -0.4 -0.3
> > 3  -1.9  0.6  1.2
> > 4  -0.2  0.7  0.2
> > 5  -0.6 -0.6 -0.4
> > 6   1.1  0.7 -1.8
> > 7  -0.9  0.6 -0.6
> > 8   1.0  0.5 -0.9
> > 9  -0.4  0.9  1.5
> > 10 -0.5  0.6  2.7
> > >
> > > library(dplyr)
> > >
> > > suma_pos <- function(x){
> > +   sum((x>0)*x)
> > + }
> > > suma_neg <- function(x){
> > +   sum((x<0)*x)
> > + }
> > >
> > > d |>
> > +   rowwise() |>
> > +   mutate(positivos = suma_pos(c_across()),
> > +  negativos = suma_neg(c_across()))
> > # A tibble: 10 × 5
> > # Rowwise:
> >a b c positivos negativos
> >
> >  1  -0.1   0.3  -0.4   0.3  -0.5
> >  2  -1-0.4  -0.3   0-1.7
> >  3  -1.9   0.6   1.2   1.8  -1.9
> >  4  -0.2   0.7   0.2   0.9  -0.2
> >  5  -0.6  -0.6  -0.4   0-1.6
> >  6   1.1   0.7  -1.8   1.8  -1.8
> >  7  -0.9   0.6  -0.6   0.6  -1.5
> >  8   1 0.5  -0.9   1.5  -0.9
> >  9  -0.4   0.9   1.5   2.4  -0.4
> > 10  -0.5   0.6   2.7   3.3  -0.5
> >
> >
> >
> > > El 2 ene 2023, a las 6:31, Manuel Mendoza 
> escribió:
> > >
> > > Buenos días, de un conjunto de variables, quiero obtener la suma de los
> > > valores positivos de cada fila, por una parte, y la de los negativos
> por
> > > otra. Qué variables toman valores positivos y negativos varía de una
> fila a
> > > otra, claro.
> > > Gracias por vuestra ayuda,
> > > Manuel
> > >
> > > [[alternative HTML version deleted]]
> > >
> > > ___
> > > R-help-es mailing list
> > > R-help-es@r-project.org
> > >
> https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help-es__;!!D9dNQwwGXtA!XPbjkJgKEEP5dmap64bNfzfAmIe4ArK_nN4H9-QIBPAihE4aO-RS6q6YAaM3IT-sP9qA0PqeGoqQF7gIlec$
> > >
> >
> >
> > [[alternative HTML version deleted]]
> >
> > ___
> > R-help-es mailing list
> > R-help-es@r-project.org
> >
> https://urldefense.com/v3/__https://stat.ethz.ch/mailman/listinfo/r-help-es__;!!D9dNQwwGXtA!XPbjkJgKEEP5dmap64bNfzfAmIe4ArK_nN4H9-QIBPAihE4aO-RS6q6YAaM3IT-sP9qA0PqeGoqQF7gIlec$
> >
> ___
> 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-es] Sumar positivos y negativos por separado

2023-01-01 Por tema Manuel Mendoza
Buenos días, de un conjunto de variables, quiero obtener la suma de los
valores positivos de cada fila, por una parte, y la de los negativos por
otra. Qué variables toman valores positivos y negativos varía de una fila a
otra, claro.
Gracias por vuestra ayuda,
Manuel

[[alternative HTML version deleted]]

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


[R-es] "bivariate.map" Function

2022-12-13 Por tema Manuel Mendoza
Buenos días, he empezado a utilizar bivariate.map. El código aparece aquí:

https://rfunctions.blogspot.com/2015/03/bivariate-maps-bivariatemap-function.html

Hice algunas pruebas y funcionó perfectamente.  Al aplicarlo a las
variables que me interesa representar me dio este error:

Error in cut.default(quanmean, breaks = brks, labels = 2:length(brks), :
'breaks' are not unique

Como veréis, al final de la página le preguntan al autor por ese mismo
error, y contesta que ese "problema está probablemente relacionado con la
baja varianza de los valores de sus variables. Probablemente sean demasiado
similares. He visto este error antes cuando se utilizan valores altos para
el número de cuantiles. 10 debería ser demasiado alto para tus valores."

Yo he bajado hasta 3 (nquantiles=3) pero me sigue dando el mismo error.
Como podéis ver, mis datos están llenos de 0s:

quantile(var1, probs = seq(0, 1, 0.1))
  0%  10%  20%  30%  40%  50%  60%  70%  80%  90% 100%
   0000000000  156

 quantile(var2, probs = seq(0, 1, 0.1))
  0%  10%  20%  30%  40%  50%  60%  70%  80%  90% 100%
   0000000000   41

pero no están en las mismas muestras para ambas variables, por lo que he
probado quitando las muestras para la que ambas variables son 0, pero
siguen habiendo muchos 0s y sigue dando el mismo error.

A ver si se os ocurre algo.
Gracias por vuestro tiempo,
Manuel

[[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] eliminar outliers en un tapply

2022-12-05 Por tema Manuel Mendoza
Gracias Jose Luis, le echaré también un vistazo a tu alternativa, que
parece muy sencilla.
Un saludo,
Manuel

El lun, 5 dic 2022 a las 14:34, jose luis () escribió:

> Hola
> Otra posibilidad:
>
> performance::checkoutliers(Data[,c("varnum", "varcat")])
> En sábado, 3 de diciembre de 2022, 09:15:28 CET, Manuel Mendoza <
> mmend...@fulbrightmail.org> escribió:
>
>
> Buenos días, utilizo:
>
> max <- tapply (Data$varnum, Data$varcat, max)
>
> para obtener el máximo de varnum en cada una de las categorías de varcat
>
> ¿cómo podría obtener los máximos, pero sin los outliers (Q75 + 1.5*IQR)?
>
> Es fácil quitar los outliers superiores de varnum, pero no es eso lo que
> necesito quitar, sino los outliers dentro ya de cada categoría de varcat.
>
> Gracias, como siempre,
> Manuel
>
> [[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] eliminar outliers en un tapply

2022-12-05 Por tema Manuel Mendoza
Gracias Francisco, Carlos me ayudó a resolver el problema, pero revisaré
también el tuyo, pues parece interesante.
Un saludo

El lun, 5 dic 2022 a las 12:09, Francisco Rodriguez Sanchez (<
f.rodriguez.s...@gmail.com>) escribió:

> Buenos días Manuel
>
> Pues le he pedido a ChatGPT (https://openai.com/blog/chatgpt/)
> exactamente esto
>
> "Write R code to remove outliers from a numeric vector stratified by
> levels of a factor"
>
> y me ha devuelto literalmente esta solución que pego abajo (que a mí
> sinceramente no se me habría ocurrido)
>
> Estoy alucinando con el potencial de estas nuevas herramientas
>
> Saludos
>
>
> |# Generate a sample dataset with 30 data points set.seed(123) x <-
> rnorm(30, mean = 10, sd = 2) factor <- sample(c("A", "B", "C", "D",
> "E"), 30, replace = TRUE) # Create a boxplot of the numeric vector,
> stratified by the levels of the factor boxplot(x ~ factor)|
>
> |# Identify the outliers outliers <- boxplot(x ~ factor, plot =
> FALSE)$out # Subset the data to remove the outliers x_no_outliers <-
> subset(x, !x %in% outliers) # View the resulting vector x_no_outliers #>
> [1] 8.879049 9.539645 10.141017 10.258575 13.430130 10.921832 7.469878
> #> [8] 8.626294 9.108676 12.448164 10.719628 10.801543 10.221365
> 8.888318 #> [15] 13.573826 10.995701 6.066766 11.402712 9.054417
> 9.564050 7.947991 #> [22] 8.542218 8.749921 6.626613 11.675574 10.306746
> 7.723726 12.507630|
>
> ^Created on 2022-12-05 with reprex v2.0.2 <https://reprex.tidyverse.org>
>
>
>
> ^
>
> On 3/12/22 9:14, Manuel Mendoza wrote:
> > Buenos días, utilizo:
> >
> > max <- tapply (Data$varnum, Data$varcat, max)
> >
> > para obtener el máximo de varnum en cada una de las categorías de varcat
> >
> > ¿cómo podría obtener los máximos, pero sin los outliers (Q75 + 1.5*IQR)?
> >
> > Es fácil quitar los outliers superiores de varnum, pero no es eso lo que
> > necesito quitar, sino los outliers dentro ya de cada categoría de varcat.
> >
> > Gracias, como siempre,
> > Manuel
> >
> >   [[alternative HTML version deleted]]
> >
> > ___
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>
> --
> Dr Francisco Rodríguez-Sánchez
> https://frodriguezsanchez.net
>
> [[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-es] eliminar outliers en un tapply

2022-12-03 Por tema Manuel Mendoza
Buenos días, utilizo:

max <- tapply (Data$varnum, Data$varcat, max)

para obtener el máximo de varnum en cada una de las categorías de varcat

¿cómo podría obtener los máximos, pero sin los outliers (Q75 + 1.5*IQR)?

Es fácil quitar los outliers superiores de varnum, pero no es eso lo que
necesito quitar, sino los outliers dentro ya de cada categoría de varcat.

Gracias, como siempre,
Manuel

[[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] Bases de datos de paquetes

2022-10-22 Por tema Manuel Mendoza
Gracias Miguel Ángel y Héctor por la información. Muy útil.
Un saludo,
Manuel


El sáb, 22 oct 2022 a las 18:59, 
escribió:

> Hola Manuel,
>
>
> Puedes usar la función data() para obtener un listado de los conjuntos de
> datos de los paquetes que tienes instalados. Y para poder cargarlos.
>
>
>
> Un saludo.
>
>
>
>
> ------
> *De:* R-help-es  en nombre de Manuel
> Mendoza 
> *Enviado:* sábado, 22 de octubre de 2022 14:19
> *Para:* Lista R
> *Asunto:* [R-es] Bases de datos de paquetes
>
> Muy buenas, si no estoy equivocado, muchos paquetes contienen bases de
> datos. ¿Cómo puedo averiguar cuáles? y sobre todo, ¿cómo puedo cargarlas?
> Si me ponéis el código de un ejemplo me vendría de perlas.
> Gracias por vuestro tiempo,
> Manuel
>
> [[alternative HTML version deleted]]
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
> --
>
> Nota: A información contida nesta mensaxe e os seus posibles documentos
> adxuntos é privada e confidencial e está dirixida únicamente ó seu
> destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe,
> por favor elimínea. A distribución ou copia desta mensaxe non está
> autorizada.
>
> Nota: La información contenida en este mensaje y sus posibles documentos
> adjuntos es privada y confidencial y está dirigida únicamente a su
> destinatario/a. Si usted no es el/la destinatario/a original de este
> mensaje, por favor elimínelo. La distribución o copia de este mensaje no
> está autorizada.
>
> See more languages: http://www.sergas.es/aviso-confidencialidad
>

[[alternative HTML version deleted]]

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


[R-es] Bases de datos de paquetes

2022-10-22 Por tema Manuel Mendoza
Muy buenas, si no estoy equivocado, muchos paquetes contienen bases de
datos. ¿Cómo puedo averiguar cuáles? y sobre todo, ¿cómo puedo cargarlas?
Si me ponéis el código de un ejemplo me vendría de perlas.
Gracias por vuestro tiempo,
Manuel

[[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] Incremento del error relativo de predicción con XgBoost

2022-04-26 Por tema Manuel Mendoza
Gracias Carlos, he descubierto que el paquete DALEX, que me recomendaste
para obtener los PDPs con XgBoost, te da también la importancia basada en
la permutación. Por cierto, que  DALEX te represente los PDPs para
distintas categorías, tanto de la variable objetivo como de alguno de los
predictores, en un mismo plot (con distintos colores) me ha resultado de
gran utilidad. Gracias, pues, de nuevo,
Un saludo,
Manuel

El dom, 24 abr 2022 a las 11:57, Carlos Ortega ()
escribió:

> Hola Manuel,
>
> Creo que ya tendrías que entrar a mirar estas cosas:
>
>- https://cloud.r-project.org/web/packages/SHAPforxgboost/index.html
>
>
>- https://cloud.r-project.org/web/packages/EIX/index.html
>
>
> Gracias,
> Carlos Ortega
> www.qualityexcellence.es
>
> El dom, 24 abr 2022 a las 6:14, Manuel Mendoza (<
> mmend...@fulbrightmail.org>) escribió:
>
>> Buenos días, ¿sabe alguien de algún paquete que  permita, con XgBoost,
>> calcular
>> el incremento del error relativo de predicción, al invalidar una
>> variable?.
>> Es lo que el paquete randomForest da como valores de importancia %IncMSE
>> para
>> regresión y MeanDecreaseAccuracy para clasificación. El paquete XgBoost da
>> 3 medidas de importancia (gain, cover y frequency) pero ninguna se basa en
>> algo parecido.
>> Gracias,
>> Manuel
>>
>> [[alternative HTML version deleted]]
>>
>> ___
>> R-help-es mailing list
>> R-help-es@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>

[[alternative HTML version deleted]]

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


Re: [R-es] Porcentajes de clasificaciones correctas

2022-02-26 Por tema Manuel Mendoza
Gracias Juan Carlos, aunque yo estaba equivocado, puesto que diag(tabrp) te
da la diagonal de la matriz completa.
Un saludo.

El sáb, 26 feb 2022 a las 16:09, Juan Carlos Lopez Mesa (<
jclop...@unal.edu.co>) escribió:

> Hola
>
> El paquete metrics te puede servir, en particular la función  accuracy
>
> library(Metrics)
>
> accuracy(actual, predicted)
>
> Saludos
>
> El sáb, 26 feb 2022 a las 1:19, Manuel Mendoza (<
> mmend...@fulbrightmail.org>) escribió:
>
>> Buenos días, obtengo una Tabla de contingencia con:
>> tabrp<-table(variable objetivo, predicción)
>>
>> y en porcentajes con:
>> tabprc<-100*(prop.table(tabrp,1))
>>
>> Para sacar los porcentajes de clasificaciones correctas usaba simplemente:
>> diag(tabrp)
>>
>> pero si no todas las categorías de la variable objetivo están en la
>> predicción, la diagonal ya no son las clasificaciones correctas.
>>
>> ¿Sabéis de alguna forma sencilla de obtener esas clasificaciones correctas
>> o de algún paquete que te lo dé directamente?
>> Gracias,
>> Manuel
>>
>> [[alternative HTML version deleted]]
>>
>> ___
>> R-help-es mailing list
>> R-help-es@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
> *Aviso legal:* El contenido de este mensaje y los archivos adjuntos son
> confidenciales y de uso exclusivo de la Universidad Nacional de Colombia.
> Se encuentran dirigidos sólo para el uso del destinatario al cual van
> enviados. La reproducción, lectura y/o copia se encuentran prohibidas a
> cualquier persona diferente a este y puede ser ilegal. Si usted lo ha
> recibido por error, infórmenos y elimínelo de su correo. Los Datos
> Personales serán tratados conforme a la Ley 1581 de 2012 y a nuestra
> Política de Datos Personales que podrá consultar en la página web
> www.unal.edu.co. Las opiniones, informaciones, conclusiones y cualquier
> otro tipo de dato contenido en este correo electrónico, no relacionados con
> la actividad de la Universidad Nacional de Colombia, se entenderá como
> personales y de ninguna manera son avaladas por la Universidad.
>

[[alternative HTML version deleted]]

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


[R-es] Aumentar el tamaño de la letra de las pestañas de R Studio

2022-02-10 Por tema Manuel Mendoza
Solucionado. La solución no es de R sino de la configuración del PC. En
accesibilidad, "Hacer todo más grande".
Simple ¿no?

Un saludo,
Manuel

[[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] Error al cargar paquetes después de reinstalar R y Rstudio (Urgente)

2021-10-22 Por tema Manuel Mendoza
Gracias Carlos, estaba a punto de escribirte para decirte que todo parece
resuelto. Al reiniciar el ordenador, Microsoft me ha preguntado si quería
recomponer Onedrive, o algo así. Ha hecho no sé qué en 14 pasos, y todo
parece estar ya normal. ¡Me he agobiado un montón!
Gracias de nuevo,
Manuel

El vie, 22 oct 2021 a las 9:51, Carlos Ortega ()
escribió:

> Hola,
>
> Creo que el error que tienes, supongo que estás en Windows, es que no has
> instalado las RTools...
>
> La secuencia de instalación que te sugiero es esta:
> 1. RTools.
> 2. R
> 3. RStudio
>
> Saludos,
> Carlos Ortega.
> www.qualityexcellence.es
>
> El vie, 22 oct 2021 a las 8:52, Emilio L. Cano ()
> escribió:
>
>> Manuel,
>>
>> Yo cuando actualizo me gusta empezar de cero, en vez de “como estaba ayer
>> tarde”. No obstante hay formas de hacerlo, básicamente copiar todos los
>> directorios de paquetes de la versión anterior en la carpeta de paquetes de
>> la versión nueva, y hacer un update.packages con el argumento adecuado para
>> que compruebe la versión.
>>
>> Dicho esto, el error que te sale puede ser porque estás intentando
>> instalar el paquete desde los fuentes y tiene que compilar. En RStudio, al
>> instalar paquetes si detecta una versión más actual pero que necesita
>> compilación, nos pregunta si queremos instalar la más reciente. Si le
>> decimos que sí, pero no tenemos las herramientas de desarrollo, entonces no
>> puede instalarla. Si te hace esa pregunta, mejor responde No y así no te
>> dará error al instalar paquetes.
>>
>> Un saludo,
>> Emilio
>>
>> Emilio L. Cano
>> http://emilio.lcano.com
>>
>>
>>
>>
>> > El 22 oct 2021, a las 7:49, Manuel Mendoza 
>> escribió:
>> >
>> > Buenos días, después de reinstalar R y Rstudio me da este error:
>> >
>> > Error: package or namespace load failed for ‘ggplot2’ in
>> library.dynam(lib,
>> > package, package.lib):
>> > DLL ‘rlang’ not found: maybe not installed for this architecture?
>> > In addition: Warning message:
>> > package ‘ggplot2’ was built under R version 4.0.5
>> >
>> > Lo ideal sería recuperar cómo estaba todo ayer tarde, pero supongo que
>> ya
>> > no se puede.
>> >
>> > Gracias por ayudarme cuanto antes, puesto que esta tarde tengo un curso.
>> > Manuel
>> >
>> >   [[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
>>
>
>
> --
> 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-es] Error al cargar paquetes después de reinstalar R y Rstudio (Urgente)

2021-10-21 Por tema Manuel Mendoza
Buenos días, después de reinstalar R y Rstudio me da este error:

Error: package or namespace load failed for ‘ggplot2’ in library.dynam(lib,
package, package.lib):
 DLL ‘rlang’ not found: maybe not installed for this architecture?
In addition: Warning message:
package ‘ggplot2’ was built under R version 4.0.5

Lo ideal sería recuperar cómo estaba todo ayer tarde, pero supongo que ya
no se puede.

Gracias por ayudarme cuanto antes, puesto que esta tarde tengo un curso.
Manuel

[[alternative HTML version deleted]]

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


[R-es] gbm y unbalanced data

2021-10-11 Por tema Manuel Mendoza
Muy buenas, tengo una base de datos descompensada, en la que las ausencias
(0) de ptyrup (una especie) son unas 3.5 veces más frecuentes que las
presencias (1). De acuerdo a la documentación de gbm, weights es un vector
opcional de pesos a utilizar en el proceso de ajuste. Utilizo:

data$weights <- ifelse(data$ptyrup == 0, 1, 3.5)

fitgbm <- gbm(ptyrup ~. -weights, data=data,
distribution="bernoulli", weights = weights,
  cv.folds=5, n.trees=5000, verbose=F)

kappa sale distinto, pero  weights  no tiene el efecto esperado.

Supongo que mi interpretación de lo que dice la documentación es
incorrecta. ¿Sabe alguien si existe una forma directa de ponderar alguna de
las categorías? Algo como weights con rpart, sampsize con RF o
scale_pos_weight con
XgBoost. Remuestreo y cosas así no me sirven en este caso.

Gracias, como siempre,
Manuel

[[alternative HTML version deleted]]

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


[R-es] Identificar las muestras que son iguales a la seleccionada en un loop

2021-08-17 Por tema Manuel Mendoza
Buenos tardes, tengo una df, datarem, resultado de un remuestreo de data,
que lógicamente tiene muestras repetidas muchas veces. Para hacer un
leave-one-out, cada vez que quito una muestra tengo que quitar también las
que son iguales a ella. Se me ocurrió hacer lo de abajo, pero no funciona
porque "duplicated" no hace lo que yo creía y no sé cómo identificar las
muestras que son iguales a la seleccionada (datarem[i, ]), aunque creo que
es sencillo.
Lo de después de aplicar rpart tampoco está bien, porque la muestra sobre
la que predigo no es la misma que había quitado. Cualquier sugerencia al
respecto también me vendría bien.

preds <- c(0)  # creamos un vector vacío

for (i in 1:nrow(data)) {
  index <- which(duplicated(data.rem[i, ]))
  training <-  training  [-i, ]
  training <-  datarem[-index, ]
  fitrp <- rpart(loc ~ .,data=training)
  Pred <- predict(fitrp,data[i,], type="class")
  preds[i] <- as.character(Pred)
}
data$preds<- preds

Muchas gracias, como siempre.
Manuel

[[alternative HTML version deleted]]

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


[R-es] Identificar muestras iguales a una en concreto

2021-08-14 Por tema Manuel Mendoza
Buenos días, tengo una df, resultado de un remuestreo de data (data.rem),
que lógicamente tiene muestras repetidas muchas veces. Para hacer un
leave-one-out, cada vez que quito una muestra tengo que quitar también las
que son iguales. Se me ocurrió hacer lo de abajo, pero no funciona porque
"duplicated" no hace lo que yo creía y no sé cómo identificar las muestras
que son iguales a la seleccionada (data.rem[i, ]).
Lo de después del rpart tampoco está bien, porque la muestra sobre la que
predigo no es la misma que había quitado.

preds <- c(0)  # creamos un vector vacío
for (i in 1:nrow(data)) {
  index <- which(duplicated(data.rem[i, ]))
  training <-  data.rem[-index, ]
  training <-  training  [-i, ]
  fitrp <- rpart(loc ~ .,data=training)
  Pred <- predict(fitrp,data[i,], type="class")
  preds[i] <- as.character(Pred)
}
data$preds<- preds

Muchas gracias, como siempre.
Manuel

[[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] PDP con XgBoost

2021-04-14 Por tema Manuel Mendoza
Gracias Eric (veo que tú también trasnochas), así es como lo hice con
clasificación binaria y funcionó. Con regresión me da este error (entre
otros):

Error in if (object$params$objective %in% c("reg:linear", "reg:logistic",
 : argumento tiene longitud cero

pero todo esto es bastante nuevo y apenas hay información en la red.

De todas formas, con DALEX, que me aconsejó Carlos, es rápido y sencillo.
Además, hace LIME y Shapley, que también me interesan, por lo que me paso a
DALEX.

Gracias, en cualquier caso,
Manuel

El jue, 15 abr 2021 a las 3:58, Eric Concha ()
escribió:

> Quizá te sirve así:
> Se calcula el pdp con la función partial() del paquete pdp,
> luego graficas con ggplot():
>
> # CALCULAR EL PDP
>  bdst_edadagnospdp <- pdp::partial(dat.rfr, pred.var="edadagnos")
>
> # CAMBIAR EL NOMBRE A LA COLUMNA DE DATOS CALCULADOS, PARA EL GRAFICO
>  names(bdst_edadagnospdp)[2] <- "bdst_pb"
>
> # GRAFICAR LA CURVA CALCULADA POR PDP SOBRE EL SET DE DATOS PARA TESTING
>  ggplot(dat.test, aes(edadagnos,bdst_pb)) +
> geom_density_2d_filled(show.legend = FALSE) + geom_point(size=0.1,
> col="white") + ylim(-1,6) + xlim(8,13) +
> geom_line(data=bdst_edadagnospdp, col="red", size=1.5)
>
> la curva calculada con pdp se agrega sobre los datos para testing al
> final del ggplot, en la parte de geom_line(data=bdst_edadagnospdp,
> col="red", size=1.5)
>
> puedes mirar los detalles de la funcion pdp con ?pdp.
>
> Ojalá te sirva,
>
> Saludos !!
>
> Eric.
>
>
>
>
> On Wed, 14 Apr 2021 21:03:39 +0200
> Manuel Mendoza  wrote:
>
> > Buenas, ¿alguien ha calculado alguna vez partial dependence plots con
> > XgBoost? Yo lo he conseguido con el paquete PDP y clasificación
> > binaria, pero llevo horas intentándolo con regresión y no hay forma.
> > Apenas hay ejemplos en la red, y utilizan caret o h2o, que de momento
> > no me sirven. Gracias,
> > Manuel
> >
> >   [[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] PDP con XgBoost

2021-04-14 Por tema Manuel Mendoza
Fantástico Carlos. Funcionó a la primera con mis propios datos.
Mil gracias, una vez más.
Manuel

El mié, 14 abr 2021 a las 21:51, Carlos Ortega ()
escribió:

> Hola Manuel,
>
> Sí, mira lo puedes hacer con DALEX.
> En estos dos artículos, puedes ver el caso con "ranger", en modo regresión
> pero que es equivalente con "xgboost".
>
>
>-
>
> https://medium.com/responsibleml/basic-xai-with-dalex-part-1-introduction-e68f65fa2889
>-
>
> https://medium.com/responsibleml/basic-xai-with-dalex-part-3-partial-dependence-profile-caf8b2ad1c9d
>
> Saludos,
> Carlos.
>
> El mié, 14 abr 2021 a las 21:04, Manuel Mendoza (<
> mmend...@fulbrightmail.org>) escribió:
>
>> Buenas, ¿alguien ha calculado alguna vez partial dependence plots con
>> XgBoost? Yo lo he conseguido con el paquete PDP y clasificación binaria,
>> pero llevo horas intentándolo con regresión y no hay forma. Apenas hay
>> ejemplos en la red, y utilizan caret o h2o, que de momento no me sirven.
>> Gracias,
>> Manuel
>>
>> [[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-es] PDP con XgBoost

2021-04-14 Por tema Manuel Mendoza
Buenas, ¿alguien ha calculado alguna vez partial dependence plots con
XgBoost? Yo lo he conseguido con el paquete PDP y clasificación binaria,
pero llevo horas intentándolo con regresión y no hay forma. Apenas hay
ejemplos en la red, y utilizan caret o h2o, que de momento no me sirven.
Gracias,
Manuel

[[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] error con grid.arrange

2021-04-06 Por tema Manuel Mendoza
Gracias Jorge, antes de consultaros estuve viendo varios ejemplos, tratando
de seguirlos con detalle, pero no funcionaba. Sospecho que es porque los
elementos no son simples df sino:
 [1] "data.frame" "partial".

El mar, 6 abr 2021 a las 20:52, Jorge I Velez ()
escribió:

> Manuel,
> Quizás los ejemplos en
> www.sthda.com/english/wiki/wiki.php?id_contents=7930 te ayuden.
> Saludos,
> Jorge.-
>
>
> El El mar, 6 de abr. de 2021 a la(s) 1:30 p. m., Manuel Mendoza <
> mmend...@fulbrightmail.org> escribió:
>
>> Muy buenas, trato de poner 5 ggplots juntos con  grid.arrange y me da este
>> error:
>>
>> > grid.arrange(pdpPL, pdpPs, pdpCl, pdpUr, pdpHP, nrow = 1)
>>
>> Error in `$<-.data.frame`(`*tmp*`, "wrapvp", value = list(x = 0.5, y =
>> 0.5,
>>  :
>>   replacement has 17 rows, data has 30
>>
>>
>> Algunas pistas (todo igual para los 5 PDPs):
>>
>> > class(pdpPL)
>> [1] "data.frame" "partial"
>>
>> > head(pdpPL)
>>   PrimLand   yhat
>> 1 0.00 0.12917927
>> 2 0.02 0.17702830
>> 3 0.04 0.13464397
>> 4 0.06 0.15734838
>> 5 0.08 0.11623142
>> 6 0.10 0.05936711
>>
>> > str(pdpPL)
>> Classes ‘partial’ and 'data.frame': 51 obs. of  2 variables:
>>  $ PrimLand: num  0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 ...
>>  $ yhat: num  0.129 0.177 0.135 0.157 0.116 ...
>>
>> Gracias,
>> Manuel
>>
>> [[alternative HTML version deleted]]
>>
>> ___
>> R-help-es mailing list
>> R-help-es@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
> --
> Sent from my phone. Please excuse my brevity and misspelling.
>

[[alternative HTML version deleted]]

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


[R-es] error con grid.arrange

2021-04-06 Por tema Manuel Mendoza
Muy buenas, trato de poner 5 ggplots juntos con  grid.arrange y me da este
error:

> grid.arrange(pdpPL, pdpPs, pdpCl, pdpUr, pdpHP, nrow = 1)

Error in `$<-.data.frame`(`*tmp*`, "wrapvp", value = list(x = 0.5, y = 0.5,
 :
  replacement has 17 rows, data has 30


Algunas pistas (todo igual para los 5 PDPs):

> class(pdpPL)
[1] "data.frame" "partial"

> head(pdpPL)
  PrimLand   yhat
1 0.00 0.12917927
2 0.02 0.17702830
3 0.04 0.13464397
4 0.06 0.15734838
5 0.08 0.11623142
6 0.10 0.05936711

> str(pdpPL)
Classes ‘partial’ and 'data.frame': 51 obs. of  2 variables:
 $ PrimLand: num  0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 ...
 $ yhat: num  0.129 0.177 0.135 0.157 0.116 ...

Gracias,
Manuel

[[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] poner un código en Internet

2021-03-28 Por tema Manuel Mendoza
Gracias Paco. La información que me das me es muy útil. Subí a Zenodo el
código que los revisores de un artículo me piden que haga público. Aquí lo
tenéis, por si alguna vez os fuera de utilidad.
Un saludo,
Manuel

https://zenodo.org/record/4642268#.YGAlB68zbb1

El vie, 26 mar 2021 a las 13:22, Francisco Rodriguez Sanchez (<
f.rodriguez.s...@gmail.com>) escribió:

> Buenos días Manuel,
>
> Hasta donde yo sé, pastebin no garantiza que ese código quede archivado
> y público de manera permanente (https://pastebin.com/faq#18). Tampoco
> GitHub, GitLab, etc. Si es un artículo científico, lo deseable es que
> cualquiera pueda acceder a ese código dentro de 1, 5, ó 10 años. Para
> ello puedes usar repositorios gratuitos y permanentes como Zenodo
> https://zenodo.org/
>
> Parece algo trivial pero el problema de enlaces de internet y scripts de
> código que desaparecen con el tiempo es un problema grave en ciencia
> (https://doi.org/10.1371/journal.pone.0115253)
>
> Saludos
>
> Paco
>
>
> On 26/3/21 5:50, Manuel Mendoza wrote:
> > Gracias Eric y Xavier. Finalmente utilicé pastebin porque es más
> sencillo.
> > Los Gits ofrecen muchas más cosas, pero, de momento, no me hacen falta.
> En
> > una revista me piden, simplemente, que el código de un índice que
> > desarrollamos esté disponible en algún sitio.
> > Lo pongo aquí, por si le interesa a alguien. Permite identificar la
> > existencia de patrones discretos en un espacio multidimensional, así como
> > cuantificar cómo de discretos son los patrones, en caso de que los haya.
> > https://pastebin.com/54fdnp7Y
> >
> > El jue, 25 mar 2021 a las 21:18, Eric ()
> > escribió:
> >
> >> https://pastebin.com/
> >>
> >>
> >>
> >> On 25-03-21 17:07, Manuel Mendoza wrote:
> >>> Buenas tardes (de nuevo), ¿sabéis si hay alguna forma sencilla de poner
> >> un
> >>> código en Internet, al que pueda acceder cualquiera desde un link?
> >>> Gracias,
> >>> Manuel
> >>>
> >>>[[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
>
> --
> Dr Francisco Rodríguez-Sánchez
> https://frodriguezsanchez.net
>
>
> [[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] Media de los valores de una lista

2021-03-27 Por tema Manuel Mendoza
Gracias Jorge, Carlos me propuso lo mismo para quedarme con el máximo de
cada columna:
   apply(probs, 1, max, na.rm = TRUE),
algo muy simple, que funciona, claro.
Un saludo,
Manuel

El sáb, 27 mar 2021 a las 16:29, Jorge I Velez ()
escribió:

> Manuel,
>
> Si entiendo bien, algo como esto te servirá:
>
> # máximo por fila
> apply(probs, 1, max, na.rm = TRUE)
>
> # probabilidades promedio por columna
> colMeans(probs, na.rm = TRUE)
>
> # probabilidad promedio para todos
> mean(c(probs), na.rm = TRUE)
>
> Saludos,
> Jorge.-
>
> El El vie, 26 de mar. de 2021 a la(s) 1:55 p. m., Manuel Mendoza <
> mmend...@fulbrightmail.org> escribió:
>
>> Muy buenas, tengo una matriz (probs) de 100 x 2, que son probabilidades.
>> > head(probs, 3)
>> 1   2
>> [1,] 0.8282016   0.1717984
>> [2,] 0.1288460   0.8711540
>> [3,] 0.8830735   0.1169265
>>
>>   A partir de ella obtengo un vector de 100 elementos que incluye el valor
>> máximo de los dos. Utilizo
>>
>>   Maxprob<-c()
>> for(j in 1:100){
>>   Maxprob[[j]] <- c(max(probs[j,]))
>> }
>>
>> > head(Maxprob,3)
>> [[1]]
>> [1] 0.8282016
>> [[2]]
>> [1] 0.871154
>> [[3]]
>> [1] 0.8830735
>>
>> Esto lo hice hace años y calculaba la media de todos los valores de
>> Maxprob con mean(Maxprob), y funcionaba, puesto que lo utilicé a menudo
>> durante años, con distintas dfs. Pero ahora me dice: Warning message: In
>> mean.default(Maxprob) : argument is not numeric or logical: returning NA
>>
>> He probado a calcular los valores máximos con:
>>  Maxprob<-pmax(c(Prob[,1:2])) y hace bien la media con mean(Maxprob), pero
>> el resto del código sale distinto que antes. De hecho, ya no sale bien.
>> Llevo un buen rato dándole vueltas pero no doy con la clave.
>> A ver si alguien pudiera darme aunque sea una pista.
>>
>> Gracias, como siempre,
>> Manuel
>>
>> [[alternative HTML version deleted]]
>>
>> ___
>> R-help-es mailing list
>> R-help-es@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
> --
> Sent from my phone. Please excuse my brevity and misspelling.
>

[[alternative HTML version deleted]]

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


[R-es] Media de los valores de una lista

2021-03-26 Por tema Manuel Mendoza
Muy buenas, tengo una matriz (probs) de 100 x 2, que son probabilidades.
> head(probs, 3)
1   2
[1,] 0.8282016   0.1717984
[2,] 0.1288460   0.8711540
[3,] 0.8830735   0.1169265

  A partir de ella obtengo un vector de 100 elementos que incluye el valor
máximo de los dos. Utilizo

  Maxprob<-c()
for(j in 1:100){
  Maxprob[[j]] <- c(max(probs[j,]))
}

> head(Maxprob,3)
[[1]]
[1] 0.8282016
[[2]]
[1] 0.871154
[[3]]
[1] 0.8830735

Esto lo hice hace años y calculaba la media de todos los valores de
Maxprob con mean(Maxprob), y funcionaba, puesto que lo utilicé a menudo
durante años, con distintas dfs. Pero ahora me dice: Warning message: In
mean.default(Maxprob) : argument is not numeric or logical: returning NA

He probado a calcular los valores máximos con:
 Maxprob<-pmax(c(Prob[,1:2])) y hace bien la media con mean(Maxprob), pero
el resto del código sale distinto que antes. De hecho, ya no sale bien.
Llevo un buen rato dándole vueltas pero no doy con la clave.
A ver si alguien pudiera darme aunque sea una pista.

Gracias, como siempre,
Manuel

ResponderReenviar

[[alternative HTML version deleted]]

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


[R-es] (sin asunto)

2021-03-26 Por tema Manuel Mendoza
Muy buenas, tengo una matriz (probs) de 100 x 2, que son probabilidades.
> head(probs, 3)
1   2
[1,] 0.8282016   0.1717984
[2,] 0.1288460   0.8711540
[3,] 0.8830735   0.1169265

  A partir de ella obtengo un vector de 100 elementos que incluye el valor
máximo de los dos. Utilizo

  Maxprob<-c()
for(j in 1:100){
  Maxprob[[j]] <- c(max(probs[j,]))
}

> head(Maxprob,3)
[[1]]
[1] 0.8282016
[[2]]
[1] 0.871154
[[3]]
[1] 0.8830735

Esto lo hice hace años y calculaba la media de todos los valores de
Maxprob con mean(Maxprob), y funcionaba, puesto que lo utilicé a menudo
durante años, con distintas dfs. Pero ahora me dice: Warning message: In
mean.default(Maxprob) : argument is not numeric or logical: returning NA

He probado a calcular los valores máximos con:
 Maxprob<-pmax(c(Prob[,1:2])) y hace bien la media con mean(Maxprob), pero
el resto del código sale distinto que antes. De hecho, ya no sale bien.
Llevo un buen rato dándole vueltas pero no doy con la clave.
A ver si alguien pudiera darme aunque sea una pista.

Gracias, como siempre,
Manuel

[[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] poner un código en Internet

2021-03-25 Por tema Manuel Mendoza
Gracias Eric y Xavier. Finalmente utilicé pastebin porque es más sencillo.
Los Gits ofrecen muchas más cosas, pero, de momento, no me hacen falta. En
una revista me piden, simplemente, que el código de un índice que
desarrollamos esté disponible en algún sitio.
Lo pongo aquí, por si le interesa a alguien. Permite identificar la
existencia de patrones discretos en un espacio multidimensional, así como
cuantificar cómo de discretos son los patrones, en caso de que los haya.
https://pastebin.com/54fdnp7Y

El jue, 25 mar 2021 a las 21:18, Eric ()
escribió:

> https://pastebin.com/
>
>
>
> On 25-03-21 17:07, Manuel Mendoza wrote:
> > Buenas tardes (de nuevo), ¿sabéis si hay alguna forma sencilla de poner
> un
> > código en Internet, al que pueda acceder cualquiera desde un link?
> > Gracias,
> > Manuel
> >
> >   [[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-es] poner un código en Internet

2021-03-25 Por tema Manuel Mendoza
Buenas tardes (de nuevo), ¿sabéis si hay alguna forma sencilla de poner un
código en Internet, al que pueda acceder cualquiera desde un link?
Gracias,
Manuel

[[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] eliminar filas que cumplen cierta condición.

2021-03-25 Por tema Manuel Mendoza
Gracias Jorge, di con la clave: la categoría tiene un espacio delante.
> table(data$Clase != " ERL")

FALSE  TRUE
5   1479

Es la df de agaricus, disponible en internet, por lo que ha tenido que
fastidiar a más de uno.
Un saludo,
Manuel

El jue, 25 mar 2021 a las 18:26, jorge.senan ()
escribió:

> Hola Manuel,
>
> Normalmente algo está fallando. No sé si un espacio puede ser el
> problema.
>
> Te recomiendo que mires el resultado  en consola de unique(data$Clase)
>
> Verás si es un string como está escrito correctamente.
>
> Además usando unique(data$Clase)[2] podrás seleccionar el elemento,
> guardarlo en un objeto y posteriormente ftltrarlo. He puesto 2 pero
> puede tener otra posición
>
> Ten en cuenta que esto es un pequeño parche. Si vas a usar el algoritmo
> de forma repetida te recomiendo que mires el error con detenimiento.
>
> Espero que puedas solucionarlo
>
> Saludos
>
> Jorge
>
>
>
>
> El 25.03.2021 18:12, Manuel Mendoza escribió:
> > Buenas tardes, hay algo que me tiene desconcertado (prueba de mi
> > desconocimiento):
> > ¿cómo puede obtener estas dos cosas de una misma df con 1484 filas?
> >
> >> table(data$Clase)
> >  CYT  ERL  EXC  ME1  ME2  ME3  MIT  NUC  POX  VAC
> >  4635   35  44  51163   244  429 20 30
> >
> >> table(data$Clase == "ERL")
> > FALSE
> >  1484
> >
> > Llevo un rato tratando eliminar esas 5 muestras con Clase=ERL usando:
> >
> > data <- data[data$Clase != "ERL",] o también,   data <-  data$Clase
> > !=
> > "ERL"
> > y no hacen nada. hice entonces la segunda tabla y vi que ¿no están?
> >
> > Esto otro:
> >> table(data$Clase != "ERL")
> > me da:
> > TRUE
> > 1484
> > Claro,
> >
> > Y probé con filter(), pero tampoco las identificaba. Imagino que estoy
> > asumiendo algo que no es.
> > 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


[R-es] eliminar filas que cumplen cierta condición.

2021-03-25 Por tema Manuel Mendoza
Buenas tardes, hay algo que me tiene desconcertado (prueba de mi
desconocimiento):
¿cómo puede obtener estas dos cosas de una misma df con 1484 filas?

> table(data$Clase)
 CYT  ERL  EXC  ME1  ME2  ME3  MIT  NUC  POX  VAC
 4635   35  44  51163   244  429 20 30

> table(data$Clase == "ERL")
FALSE
 1484

Llevo un rato tratando eliminar esas 5 muestras con Clase=ERL usando:

data <- data[data$Clase != "ERL",] o también,   data <-  data$Clase !=
"ERL"
y no hacen nada. hice entonces la segunda tabla y vi que ¿no están?

Esto otro:
> table(data$Clase != "ERL")
me da:
TRUE
1484
Claro,

Y probé con filter(), pero tampoco las identificaba. Imagino que estoy
asumiendo algo que no es.
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-es] cv.fitted en gbm

2021-03-21 Por tema Manuel Mendoza
Buenos días. He utilizado fit$cv.fitted en gbm para obtener las
predicciones OOF (por CV), para regresión, y funciona perfectamente. Sin
embargo, cuando lo aplico con clasificación multiclase me sale una matriz
con tantas columnas como clases tiene la variable objetivo. Primero pensé
que serían las probabilidades, pero no, pues incluye valores >0, tanto
positivos como negativos. La documentación dice:
cv.fitted
If cross-validation was performed, the cross-validation predicted values on
the scale of the linear predictor. That is, the fitted values from the i-th
CV-fold, for the model having been trained on the data in all other folds.
Creo que la clave está en lo de  "on the scale of the linear predictor"
pero no sé bien qué es.

¿Sabéis si es posible obtener a partir de esto las predicciones, o las
probabilidades, de las que obtengo las predicciones con: preds <-
colnames(probs)[apply(probs, 1, which.max)]

Gracias, como siempre,
Manuel

[[alternative HTML version deleted]]

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


[R-es] Ordenar gráficos de distribución de frecuencias con ggplot2

2021-03-06 Por tema Manuel Mendoza
Buenos días, como veis en el código que os copio abajo, represento la
distribución de la frecuencia de muestras de las 6 categorías presentes en
la variable Clst, a lo largo de la variable NPP. Me representa los 6
gráficos ordenados de arriba a abajo. Dos cuestiones:
1. ¿Cómo le puedo indicar el orden?
2. ¿Cómo puedo representar los 6 juntos, superpuestos (con cierta
transparencia) en un mismo gráfico?

Muchas gracias, como siempre,
Manuel


pIFd = data %>%
  gather(x, y, NPP) %>%
  ggplot(aes(x = y, y = Clst, color = Clst, fill = Clst)) +
  facet_wrap( ~ x, scale = "free", ncol = 3) +
  scale_fill_tableau() +
  scale_color_tableau() +
  geom_density_ridges(alpha = 0.8) +
  guides(fill = F, color = F)

windows();pIFd

[[alternative HTML version deleted]]

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


[R-es] Fwd: Dos cuestiones relacionadas con rpart y printcp

2021-02-25 Por tema Manuel Mendoza
-- Forwarded message -
De: Manuel Mendoza 
Date: mié, 24 feb 2021 a las 18:59
Subject: Dos cuestiones relacionadas con rpart y printcp
To: Lista R 


Muy buenas, tengo dos cuestiones relacionadas con  rpart para regresión y
printcp.
Entreno el algoritmo con  fitrp <- rpart(nspp ~ ., data=data, cp=0)
y obtengo el error relativo, xerror, del mejor árbol con
min(fitrp$cptable[,"xerror"]).
Hasta ahí muy fácil.

1. Para calcular mse, multiplico ese valor de xerror por el error del nodo
raíz.
¿es correcto?

2. Necesito el % de varianza (R2) de la variable objetivo explicada por el
mejor árbol, pero no está en ninguno de los objetos incluídos fitrp.
En la documentación encontré que rsq.rpart(fitrp) te representa
directamente la evolución de R2 tal y como se van añadiendo nuevas
divisiones (también te representa la evolución de xerror, pero esa ya la
tenía con plotcp(fitrp)).
Mi pregunta es:
¿cómo puedo obtener esa secuencia de valores de R2, cuyo máximo sería el R2
que busco?
Gracias, una vez más,
Manuel

[[alternative HTML version deleted]]

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


[R-es] Dos cuestiones relacionadas con rpart y printcp

2021-02-24 Por tema Manuel Mendoza
Muy buenas, tengo dos cuestiones relacionadas con  rpart para regresión y
printcp.
Entreno el algoritmo con  fitrp <- rpart(nspp ~ ., data=data, cp=0)
y obtengo el error relativo, xerror, del mejor árbol con
min(fitrp$cptable[,"xerror"]).
Hasta ahí muy fácil.

1. Para calcular mse, multiplico ese valor de xerror por el error del nodo
raíz.
¿es correcto?

2. Necesito el % de varianza (R2) de la variable objetivo explicada por el
mejor árbol, pero no está en ninguno de los objetos incluídos fitrp.
En la documentación encontré que rsq.rpart(fitrp) te representa
directamente la evolución de R2 tal y como se van añadiendo nuevas
divisiones (también te representa la evolución de xerror, pero esa ya la
tenía con plotcp(fitrp)).
Mi pregunta es:
¿cómo puedo obtener esa secuencia de valores de R2, cuyo máximo sería el R2
que busco?
Gracias, una vez más,
Manuel

[[alternative HTML version deleted]]

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


[R-es] Random search of hyperparameters

2021-02-20 Por tema Manuel Mendoza
¿Conoce alguien un método de optimización de parámetros al azar que no
utilice caret? Algo parecido a grid search sería ideal.
for-loops anidados serviría, aunque si no son pocos parámetros puede ser
engorroso.
Gracias,
Manuel

[[alternative HTML version deleted]]

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


[R-es] ¿por qué kappa da distinto con confusionMatrix y kappa2?

2021-02-17 Por tema Manuel Mendoza
Sabe alguien por qué kappa da distinto con *confusionMatrix *y  *kappa2*.
Gracias,
Manuel

[[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] Cómo leer %>% y mutate

2021-02-17 Por tema Manuel Mendoza
Gracias Carlos. Finalmente lo solucioné con la de abajo. *data *es la base
de datos original.

Esto:
 OOF_prediction <- data.frame(cv_model$pred) %>%
  mutate(max_prob = max.col(., ties.method = "last"),
 label = trainy + 1)
con:
OOF_prediction = data.frame(cv_model$pred)  # predicción convertida en df
colnames(OOF_prediction) = levels(as.factor(data$Clase)) # volver a poner
el nombre
OOF_prediction$pred <- colnames(OOF_prediction)[apply(OOF_prediction , 1,
which.max)]
data$pred<-as.factor(OOF_prediction $pred)

De hecho, cuando os lo pregunté ya lo tenía. Pensaba que estaba mal porque
con *confusionMatrix *me daba un valor de kappa distinto al que yo tenía
calculado con kappa2. Finalmente lo sospeché, lo probé con otros resultados
y ¡por fin!
Mi duda, ahora, es por qué kappa da distinto con *confusionMatrix *y
*kappa2*.
Gracias nuevamente,
Un saludo,
Manuel


El mié, 17 feb 2021 a las 21:54, Carlos Ortega ()
escribió:

> Hola Manuel,
>
> Lo que dice este código es esto:
>
>- Selecciono el campo "pred" de cv_model y lo convierto en data.frame
>(tidyverse actúa sobre data.frames)
>- Crea una variable nueva (mutate) que es el valor de la columna nonde
>se produce el máximo (de "pred", el "." indica eso).
>   - Y en mutate(), crea una segunda variable que la llama "label" que
>   es el valor de "trainy + 1".
>- Y todo esto lo guardo en "OOB_prediction".
>
> Gracias,
> Carlos.
>
> El mié, 17 feb 2021 a las 12:14, Manuel Mendoza (<
> mmend...@fulbrightmail.org>) escribió:
>
>> ¿Alguien podría leerme esto? Si además me lo pone sin  %>% y sin mutate,
>> me
>> hace un rey, pues llevo horas y no lo consigo.
>>
>> OOF_prediction <- data.frame(cv_model$pred) %>%
>>   mutate(max_prob = max.col(., ties.method = "last"),
>>  label = trainy + 1)
>>
>> Gracias mil,
>> Manuel
>>
>> [[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-es] Cómo leer %>% y mutate

2021-02-17 Por tema Manuel Mendoza
¿Alguien podría leerme esto? Si además me lo pone sin  %>% y sin mutate, me
hace un rey, pues llevo horas y no lo consigo.

OOF_prediction <- data.frame(cv_model$pred) %>%
  mutate(max_prob = max.col(., ties.method = "last"),
 label = trainy + 1)

Gracias mil,
Manuel

[[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] from scipy import stats

2021-02-07 Por tema Manuel Mendoza
Gracias Carlos, la verdad es que me extrañaban varias cosas del código que
propone. Ahora entiendo.
He conseguido aplicar un xgboost a un problema de regresión, optimizando
incluso los hiperparámetros con xgb.cv y expand.grid. Ahora estoy
intentando aplicarlo para clasificación binaria y multiclase.
Carlos Ortega ya me mandó algunos ejemplos de aplicación de xgboost pero si
tú, o algún otro, conoce otros, me serían también de ayuda.
Un saludo,
Manuel

El dom, 7 feb 2021 a las 14:53, Carlos A. Crespo ()
escribió:

> Hola Manuel;
> Lo que estás viendo es código en Python y por eso no sabés cómo hacerlo en
> R.
> ¿Qué es lo que necesitas hacer?
>
> Saludos,
>
> El dom, 7 feb 2021 a las 10:46, Manuel Mendoza (<
> mmend...@fulbrightmail.org>) escribió:
>
>> En la respuesta de la página:
>>
>> https://stats.stackexchange.com/questions/183984/how-to-use-xgboost-cv-with-hyperparameters-optimization
>> empieza diciendo:
>>
>> from scipy import statsfrom xgboost import XGBClassifierfrom
>> sklearn.model_selection import RandomizedSearchCV, KFoldfrom
>> sklearn.metrics import f1_score
>>
>> No sé bien lo que es ni cómo se hace.
>>
>> ¿alguien me lo podría decir?
>>
>> Gracias,
>>
>> Manuel
>>
>> [[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-es] from scipy import stats

2021-02-07 Por tema Manuel Mendoza
En la respuesta de la página:
https://stats.stackexchange.com/questions/183984/how-to-use-xgboost-cv-with-hyperparameters-optimization
empieza diciendo:

from scipy import statsfrom xgboost import XGBClassifierfrom
sklearn.model_selection import RandomizedSearchCV, KFoldfrom
sklearn.metrics import f1_score

No sé bien lo que es ni cómo se hace.

¿alguien me lo podría decir?

Gracias,

Manuel

[[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] Obtener una df a partir de una lista (o algo así)

2021-02-05 Por tema Manuel Mendoza
Gracias Carlos y Carlos J. con lo que me indicáis solucioné bien el
problema.
Un saludo,
Manuel

El vie, 5 feb 2021 a las 9:34, Carlos Ortega ()
escribió:

> Hola Manuel,
>
> Otra alternativa que se me ocurre es que veas el problema de otra forma.
>
> En vez de usar un caso del ejemplo de la función "xgboost()" en el que
> efectivamente las variables de train/test ya tienen una estructura lista
> para ser utilizados por xgboost, prueba a crear a partir de un data.frame
> las variables de train y test.
>
> Como referencia mira esto:
>
>-
>https://xgboost.readthedocs.io/en/latest/R-package/xgboostPresentation.html
>- Read the part about "Basic Training using XGBoost" / "Parameter
>   variations"
>- O este otro ejemplo más completo:
>-
>   
> https://www.analyticsvidhya.com/blog/2016/01/xgboost-algorithm-easy-steps/
>
> Gracias,
> Carlos Ortega
> www.qualityexcellence.es
>
> El vie, 5 feb 2021 a las 6:36, Carlos J. Gil Bellosta (<
> c...@datanalytics.com>) escribió:
>
>> Hola, ¿qué tal?
>>
>> Por razones que no vienen al caso y a diferencia de muchos otros tipos de
>> modelos tal como se implementan en R, xgboost admite como argumentos la X
>> (data) y la Y (label) de tu problema por separado. Son dos objetos
>> distintos. agaricus.train es una lista que contiene esos dos objetos (la X
>> y la Y); de hecho, una lista es precisamente eso: una estructura que
>> permite yuxtaponer otras.
>>
>> Los dos objetos son, el uno, la matriz agaricus.train$data ---puedes ver
>> que se trata de una matriz "sparse" haciendo class(agaricus.train$data) o
>> usar las funciones head, etc. para inspeccionarla--- y el otro es un
>> vector
>> de números (0 o 1), agaricus.train$label.
>>
>> Puedes convertir todo en un df tradicional haciendo algo así como
>>
>> datos <- data.frame(as.matrix(agaricus.train$data), label =
>> agaricus.train$label)
>>
>> Dicho todo lo cual, creo que te vendría bien echarle un buen vistazo a los
>> capítulos 2, 3 y 5 de esto <https://datanalytics.com/libro_r/> antes de
>> meterte con XGBoost o sufrirás mucho.
>>
>> Un saludo,
>>
>> Carlos J. Gil Bellosta
>> http://www.datanalytics.com
>>
>>
>> El vie, 5 feb 2021 a las 6:11, Manuel Mendoza (<
>> mmend...@fulbrightmail.org>)
>> escribió:
>>
>> > Buenos días, estoy tratando de implementar el código que veis abajo, de
>> la
>> > documentación del paquete xgboost. Me desconcierta que al cargar las
>> bases
>> > de datos aparezcan como listas. Cuando la llama directamente al aplicar
>> la
>> > función xgboost (data = train$data) me desconcierta todavía más.
>> Entiendo
>> > que se puede hacer así también, claro. Aunque no aparezca en el
>> documento,
>> > pretendo componer la df para trabajar desde ella (tal y como acostumbro
>> a
>> > hacer) pero, en mi infinita ignorancia, no lo consigo.
>> > He probado cosas como:
>> > df<-as.data.frame(train),
>> > df<-as.data.frame(train$data)
>> > y también con as.matrix, pero no funcionan.
>> > Si alguien me dice cómo hacerlo (y de paso, por qué) se lo agradecería
>> > mucho.
>> >
>> > library(xgboost)
>> > data(agaricus.train, package='xgboost')
>> > data(agaricus.test, package='xgboost')
>> > train <- agaricus.train
>> > test <- agaricus.test
>> > bst <- xgboost(data = train$data, label = train$label, max_depth = 2,
>> eta =
>> > 1, nrounds = 2, objective = "binary:logistic")
>> >
>> > Gracias, como siempre,
>> > Manuel
>> >
>> > [[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
>>
>
>
> --
> 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-es] Obtener una df a partir de una lista (o algo así)

2021-02-04 Por tema Manuel Mendoza
Buenos días, estoy tratando de implementar el código que veis abajo, de la
documentación del paquete xgboost. Me desconcierta que al cargar las bases
de datos aparezcan como listas. Cuando la llama directamente al aplicar la
función xgboost (data = train$data) me desconcierta todavía más. Entiendo
que se puede hacer así también, claro. Aunque no aparezca en el documento,
pretendo componer la df para trabajar desde ella (tal y como acostumbro a
hacer) pero, en mi infinita ignorancia, no lo consigo.
He probado cosas como:
df<-as.data.frame(train),
df<-as.data.frame(train$data)
y también con as.matrix, pero no funcionan.
Si alguien me dice cómo hacerlo (y de paso, por qué) se lo agradecería
mucho.

library(xgboost)
data(agaricus.train, package='xgboost')
data(agaricus.test, package='xgboost')
train <- agaricus.train
test <- agaricus.test
bst <- xgboost(data = train$data, label = train$label, max_depth = 2, eta =
1, nrounds = 2, objective = "binary:logistic")

Gracias, como siempre,
Manuel

[[alternative HTML version deleted]]

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


[R-es] predicciones con XGBoost

2021-02-02 Por tema Manuel Mendoza
Muy buenas, llevo un par de días tratando de familiarizarme con XGBoost
para regresión. En todos los tutoriales y ejemplos que encuentro empiezan
dividiendo los datos en train y test. Cuando utilizan xgb.cv, esto, para
mi, no tiene mucho sentido porque la validación cruzada ya te da un valor
realista de mse, pero, si lo hacen siempre será por alguna razón
que desconozco. Supongo que por esa misma razón no te dan las predicciones
obtenidas por CV sobre los datos, y eso es lo que yo busco. Me hacen falta
para representarlos frente a  los datos observados y obtener R cuadrado,
que es más intuitivo que el error y permite, además, comparar los
resultados de problemas distintos.
¿sabe alguien cómo obtener las predicciones obtenidas por CV sobre los
datos? y de paso, si alguien me dice para que dividen los datos en train y
test cuando después utilizan xgb.cv, pues también me vendría bien.
Gracias, como siempre,
Manuel

[[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] resultados de un apply

2021-01-27 Por tema Manuel Mendoza
Gracias Marcelino, tomo nota para la próxima vez que me haga falta.
Manuel

El mié, 27 ene 2021 a las 8:07, Marcelino de la Cruz Rot (<
marcelino.delac...@urjc.es>) escribió:

> Perdón,
>
> preds <- colnames(probs)[apply(probs, 1, which.max)]
>
> El 27/01/2021 a las 7:57, Marcelino de la Cruz Rot escribió:
> >
> > preds <- col.names(probs)[apply(probs, 1, which.max)]
> >
> >
> >
> > El 27/01/2021 a las 4:27, Manuel Mendoza escribió:
> >> Buenos días, de un gbm multinomial obtengo los resultados en
> >> probabilidades, como veis abajo.
> >> Con   preds <- apply(probs, 1, which.max) obtengo la categoría más
> >> probable, pero me la da como 1,1,1,3,2,5,... indicando la posición de la
> >> categoría en vez de su nombre. Con ifelse se puede transformar
> >> fácilmente
> >> pero, quizás, haya una forma de obtenerlo directamente. ¿Lo sabéis?
> >>
> >> CYTERL EXC ME1
> >>   ME2 ME3
> >> [1,] 0.4109855 0.0003585678 0.008226155 0.0010024805 0.011564794
> >> 0.011061570
> >> [2,] 0.4481929 0.0003365305 0.020082853 0.0053111587 0.010587039
> >> 0.016284726
> >> [3,] 0.5991016 0.0002893456 0.004667779 0.0007938136 0.010317520
> >> 0.004139039
> >> [4,] 0.6953976 0.0001788419 0.002542308 0.0004987632 0.006486960
> >> 0.002685069
> >> [5,] 0.1880506 0.0001065788 0.002126477 0.0002694346 0.005070764
> >> 0.005504816
> >> [6,] 0.3271385 0.0001400425 0.002667148 0.0003842037 0.004645430
> >> 0.007562207
> >>
> >> Gracias,
> >> Manuel
> >>
> >> [[alternative HTML version deleted]]
> >>
> >> ___
> >> R-help-es mailing list
> >> R-help-es@r-project.org
> >> https://stat.ethz.ch/mailman/listinfo/r-help-es
> >> .
> >
> >
>
> --
> Marcelino de la Cruz Rot
> Depto. de Biología y Geología
> Física y Química Inorgánica
> Universidad Rey Juan Carlos
> Móstoles España
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

[[alternative HTML version deleted]]

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


[R-es] resultados de un apply

2021-01-26 Por tema Manuel Mendoza
Buenos días, de un gbm multinomial obtengo los resultados en
probabilidades, como veis abajo.
Con   preds <- apply(probs, 1, which.max) obtengo la categoría más
probable, pero me la da como 1,1,1,3,2,5,... indicando la posición de la
categoría en vez de su nombre. Con ifelse se puede transformar fácilmente
pero, quizás, haya una forma de obtenerlo directamente. ¿Lo sabéis?

   CYTERL EXC ME1
 ME2 ME3
[1,] 0.4109855 0.0003585678 0.008226155 0.0010024805 0.011564794 0.011061570
[2,] 0.4481929 0.0003365305 0.020082853 0.0053111587 0.010587039 0.016284726
[3,] 0.5991016 0.0002893456 0.004667779 0.0007938136 0.010317520 0.004139039
[4,] 0.6953976 0.0001788419 0.002542308 0.0004987632 0.006486960 0.002685069
[5,] 0.1880506 0.0001065788 0.002126477 0.0002694346 0.005070764 0.005504816
[6,] 0.3271385 0.0001400425 0.002667148 0.0003842037 0.004645430 0.007562207

Gracias,
Manuel

[[alternative HTML version deleted]]

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


[R-es] gbm vs. gbm.step

2021-01-25 Por tema Manuel Mendoza
Muy buenas, tengo algunas dudas sobre gradient boosting que quizás alguien
pueda resolverme.

gbm.step, del paquete dismo, tarda mucho más que gbm, del paquete gbm.
Yo había asumido que es porque busca el número óptimo de árboles por
validación cruzada. He visto, sin embargo, que gbm también te da ese número
óptimo, y con modelo$cv.fitted te da, además, las predicciones sobre las
muestras OOB de la VC, lo que me permite representarlas frente a a variable
objetivo y evaluar, además, la capacidad predictiva del algoritmo con R2.
gbm.step te da directamente esa varianza, con modelo$cv.statistics[3], pero
no consigo las predicciones sobre las OOB para representarlas frente a la
variable objetivo.

En resumen, mis dos cuestiones son:
 ¿qué hace gbm.step que no hace gbm, si tarda tanto?
¿es posible obtener con gbm.step esas predicciones sobre las OOB?

Gracias, como siempre,
Manuel

[[alternative HTML version deleted]]

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


[R-es] (sin asunto)

2021-01-25 Por tema Manuel Mendoza
Muy buenas, tengo algunas dudas sobre gradient boosting que quizás alguien
pueda resolverme.

gbm.step, del paquete dismo, tarda mucho más que gbm, del paquete gbm.
Yo había asumido que es porque busca el número óptimo de árboles por
validación cruzada. He visto, sin embargo, que gbm también te da ese número
óptimo, y con modelo$cv.fitted te da, además, las predicciones sobre las
muestras OOB de la VC, lo que me permite representarlas frente a a variable
objetivo y evaluar, además, la capacidad predictiva del algoritmo con R2.
gbm.step te da directamente esa varianza, con modelo$cv.statistics[3], pero
no consigo las predicciones sobre las OOB para representarlas frente a la
variable objetivo.

En resumen, mis dos cuestiones son:
 ¿qué hace gbm.step que no hace gbm, si tarda tanto?
¿es posible obtener con gbm.step esas predicciones sobre las OOB?

Gracias, como siempre,
Manuel

[[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] Error al cargar el paquete tidyr

2021-01-23 Por tema Manuel Mendoza
Solucionado, aunque no estoy seguro de cómo. Sé que finalmente lo pude
instalar de nuevo, y ya funciona.
Gracias a todos,
Manuel

El sáb, 23 ene 2021 a las 22:27, Marcelino de la Cruz Rot (<
marcelino.delac...@urjc.es>) escribió:

> Si da *el mismo* error, entonces, es que no se ha actualizado.
>
> Probablemente tengas que desconectarlo primero, es decir:
>
> detach("package:vctrs")
> install.packages("vctrs")
>
>
>
> El 23/01/2021 a las 21:59, Manuel Mendoza escribió:
> > Lo he actualizado, pero me sigue dando el mismo error.
> >
> > El sáb, 23 ene 2021 a las 14:48, Jesús Para Fernández (<
> > j.para.fernan...@hotmail.com>) escribió:
> >
> >> Te pide actializar el paquete vctrs. Desde rstudio puedes hacerlo sin
> >> problema
> >>
> >> Obtener Outlook para Android <https://aka.ms/ghei36>
> >> --
> >> *From:* R-help-es  on behalf of Manuel
> >> Mendoza 
> >> *Sent:* Saturday, January 23, 2021 2:45:40 PM
> >> *To:* Lista R 
> >> *Subject:* [R-es] Error al cargar el paquete tidyr
> >>
> >> Lo había utilizado hasta ahora sin problemas.
> >>
> >> Error: package or namespace load failed for ‘tidyr’ in loadNamespace(i,
> >> c(lib.loc, .libPaths()), versionCheck = vI[[i]]):
> >>   namespace ‘vctrs’ 0.2.4 is already loaded, but >= 0.3.0 is required.
> >>
> >> Gracias,
> >> Manuel
> >>
> >>  [[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
> > .
>
>
> --
> Marcelino de la Cruz Rot
> Depto. de Biología y Geología
> Física y Química Inorgánica
> Universidad Rey Juan Carlos
> Móstoles España
>
> ___
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>

[[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] Error al cargar el paquete tidyr

2021-01-23 Por tema Manuel Mendoza
Lo he actualizado, pero me sigue dando el mismo error.

El sáb, 23 ene 2021 a las 14:48, Jesús Para Fernández (<
j.para.fernan...@hotmail.com>) escribió:

> Te pide actializar el paquete vctrs. Desde rstudio puedes hacerlo sin
> problema
>
> Obtener Outlook para Android <https://aka.ms/ghei36>
> --
> *From:* R-help-es  on behalf of Manuel
> Mendoza 
> *Sent:* Saturday, January 23, 2021 2:45:40 PM
> *To:* Lista R 
> *Subject:* [R-es] Error al cargar el paquete tidyr
>
> Lo había utilizado hasta ahora sin problemas.
>
> Error: package or namespace load failed for ‘tidyr’ in loadNamespace(i,
> c(lib.loc, .libPaths()), versionCheck = vI[[i]]):
>  namespace ‘vctrs’ 0.2.4 is already loaded, but >= 0.3.0 is required.
>
> Gracias,
> Manuel
>
> [[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-es] predict.gbm

2021-01-23 Por tema Manuel Mendoza
Muy buenas, utilizo el comando gbm.step (paquete dismo) para entrenar un
gradient boosting, directamente con el nº óptimo de árboles obtenido
mediante validación cruzada.

gbm.predict me permite obtener las predicciones para nuevos datos, pero yo
querría las que se obtuvieron en la VC (para las muestras test).

Con randomForest es muy fácil. Si yo no le indico los datos
en predict(fit), me da las predicciones sobre los datos OOB. Tenía la
esperanza de que fuera igual con predict.gbm, pero  me hace las
predicciones sobre los datos de entrenamiento.

En la documentación dice “predict.gbm produces predicted values for each
observation in newdata ... “. No encuentro en ningún sitio cómo obtener las
predicciones que se obtuvieron durante la VC. ¿Sabe alguien si es posible?

Gracias,

Manuel

[[alternative HTML version deleted]]

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


[R-es] Error al cargar el paquete tidyr

2021-01-23 Por tema Manuel Mendoza
Lo había utilizado hasta ahora sin problemas.

Error: package or namespace load failed for ‘tidyr’ in loadNamespace(i,
c(lib.loc, .libPaths()), versionCheck = vI[[i]]):
 namespace ‘vctrs’ 0.2.4 is already loaded, but >= 0.3.0 is required.

Gracias,
Manuel

[[alternative HTML version deleted]]

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


[R-es] Fwd: weighted random forest

2021-01-22 Por tema Manuel Mendoza
Gracias Jesús, sí, haré remuestreos. Yo suelo usar una función que me pasó
un colega:

# A function to generate the equal number of samples (n) for different
classes

bsample <- function(data,cname,n) {
  d <- data[-c(1:nrow(data)),]
  u <- unique(data[,cname])
  for (uu in u) {
w <- which(data[,cname] == uu)
if (length(w) >= n) {
  s <- sample(w,n)
} else {
  s <- sample(w,n,replace=TRUE)
}
d <- rbind(d,data[s,])
  }
  d
}

# for your data:
table(data$Clst)
mean<-mean(table(data$Clst))
data <- bsample(data,'Clst',mean) # this takes 100 records for each class
in your dataset
table(data$Clst)

Por si le sirve a alguien, Clst sería la variable objetivo.
En vez de  bsample(data,'Clst',mean) se puede, p.e.,  (data,'Clst', *2**mean)


Manuel

El vie, 22 ene 2021 a las 16:10, Jesús Para Fernández (<
j.para.fernan...@hotmail.com>) escribió:

> Has probado en usar en vez de algoritmos sensibles al coste, usar técnicas
> de remuestreo? Hay un paquete de la UGR llamado imbalance que funciona muy
> bien.
>
>
> ----------
> *De:* R-help-es  en nombre de Manuel
> Mendoza 
> *Enviado:* viernes, 22 de enero de 2021 11:43
> *Para:* Lista R 
> *Asunto:* [R-es] weighted random forest
>
> Buenos días, tengo una base de datos desequilibrados (unbalanced) en la que
> las ausencias son 9 veces más abundantes que las presencias (*ratio *= 9).
> Para árboles de clasificación utilizo una matriz de pérdidas
> parms=list(loss=matrix(c(0,
> FP,  *ratio  *,0)))o un vector de ponderación que le da 9 veces más peso a
> las presencias. Como cabría esperar, la sensibilidad y sensitividad se
> hacen parecidas. Pasan de ser
> 89/39 a 79/76 y kappa sube de 0.24 a 0.30.
>
> El problema surge cuando intento hacer lo mismo con random forest, y
> supongo que no lo estoy haciendo bien. Uso  RFfit <- randomForest(Dep ~. ,
> classwt = c(1, *ratio * ), data=data). La sensibilidad y sensitividad se
> quedan casi igual 90/40 y kappa también 0.25.
>
> Sé que se puede hacer con ranger, pero, por razones que no vienen al caso,
> no me viene bien cambiar.
>
> Gracias, como siempre,
> Manuel
>
> [[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] weighted random forest

2021-01-22 Por tema Manuel Mendoza
Gracias Carlos, la verdad es que no me lo solucionó, seguramente por falta
mía de conocimientos. Haré remuestreo como dice Jesús.

El vie, 22 ene 2021 a las 12:46, Carlos Ortega ()
escribió:

> Hola Manuel,
>
> No dan una respuesta concluyente, pero sí algunas pistas...
>
>
> https://stackoverflow.com/questions/57076570/how-to-calculate-class-weights-for-random-forests
>
> Gracias,
> Carlos Ortega
> www.qualityexcellence.es
>
> El vie, 22 ene 2021 a las 11:43, Manuel Mendoza (<
> mmend...@fulbrightmail.org>) escribió:
>
>> Buenos días, tengo una base de datos desequilibrados (unbalanced) en la
>> que
>> las ausencias son 9 veces más abundantes que las presencias (*ratio *= 9).
>> Para árboles de clasificación utilizo una matriz de pérdidas
>> parms=list(loss=matrix(c(0,
>> FP,  *ratio  *,0)))o un vector de ponderación que le da 9 veces más peso a
>> las presencias. Como cabría esperar, la sensibilidad y sensitividad se
>> hacen parecidas. Pasan de ser
>> 89/39 a 79/76 y kappa sube de 0.24 a 0.30.
>>
>> El problema surge cuando intento hacer lo mismo con random forest, y
>> supongo que no lo estoy haciendo bien. Uso  RFfit <- randomForest(Dep ~. ,
>> classwt = c(1, *ratio * ), data=data). La sensibilidad y sensitividad se
>> quedan casi igual 90/40 y kappa también 0.25.
>>
>> Sé que se puede hacer con ranger, pero, por razones que no vienen al caso,
>> no me viene bien cambiar.
>>
>> Gracias, como siempre,
>> Manuel
>>
>> [[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-es] weighted random forest

2021-01-22 Por tema Manuel Mendoza
Buenos días, tengo una base de datos desequilibrados (unbalanced) en la que
las ausencias son 9 veces más abundantes que las presencias (*ratio *= 9).
Para árboles de clasificación utilizo una matriz de pérdidas
parms=list(loss=matrix(c(0,
FP,  *ratio  *,0)))o un vector de ponderación que le da 9 veces más peso a
las presencias. Como cabría esperar, la sensibilidad y sensitividad se
hacen parecidas. Pasan de ser
89/39 a 79/76 y kappa sube de 0.24 a 0.30.

El problema surge cuando intento hacer lo mismo con random forest, y
supongo que no lo estoy haciendo bien. Uso  RFfit <- randomForest(Dep ~. ,
classwt = c(1, *ratio * ), data=data). La sensibilidad y sensitividad se
quedan casi igual 90/40 y kappa también 0.25.

Sé que se puede hacer con ranger, pero, por razones que no vienen al caso,
no me viene bien cambiar.

Gracias, como siempre,
Manuel

[[alternative HTML version deleted]]

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


[R-es] bases de datos

2021-01-15 Por tema Manuel Mendoza
Muy buenas, supongo que ya hay cientos de bases de datos en formato csv,
incluidas en paquetes de r. ¿Sabéis si hay alguna forma de acceder a ellas
directamente? ver previamente el tipo de datos que tienen, o alguna forma
de cribar por temas. Me hacen falta bases de datos de ciencias naturales.
Gracias,
Manuel

[[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] Error: package or namespace load failed

2021-01-15 Por tema Manuel Mendoza
Gracias Carlos, Emilio y Javier, probaré con otro de los paquetes que me
decís. Respecto a la versión de R, tengo instalada también la  4.0.0 pero
la cambié en Global options porque decía que no estaba disponible para esa
versión.
Un saludo,
Manuel

El vie, 15 ene 2021 a las 9:05, Carlos Ortega ()
escribió:

> Hola,
>
> Te diría que probaras con otras librerías que no tuvieran la dependencia
> con rJava como la tiene "xlsx".
> Puedes probar con las de "tidyverse": "readxl" y "writexl".
>
> Y por otro lado, del mensaje de error que adjuntas se ve que tienes la
> versión 3.6 de R. Convendría que te actualizaras a la última y con ella
> todos los paquetes que tienes instalados. El error también puede venir de
> ahí. Aunque estando or medio "rJava" pienso que el error tiene más que ver
> con que R llegue bien a ver los paths de Java. Como todo este camino es más
> largo, por eso te recomendaba usar esas otras librerías.
>
> Gracias,
> Carlos Ortega
> www.qualityexcellence.es
>
> El vie, 15 ene 2021 a las 7:20, Manuel Mendoza (<
> mmend...@fulbrightmail.org>) escribió:
>
>> Buenos días, he instalado xlsx pero, al cargar la librería me da este
>> error:
>>
>> Error: package or namespace load failed for ‘xlsx’:
>>  .onLoad failed in loadNamespace() for 'rJava', details:
>>   call: inDL(x, as.logical(local), as.logical(now), ...)
>>   error: unable to load shared object 'C:/Users/Manuel
>> Mendoza/Documents/R/win-library/3.6/rJava/libs/x64/rJava.dll':
>>   LoadLibrary failure:  No se encontró el proceso especificado.
>>
>> Gracias,
>> Manuel
>>
>> [[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-es] Error: package or namespace load failed

2021-01-14 Por tema Manuel Mendoza
Buenos días, he instalado xlsx pero, al cargar la librería me da este error:

Error: package or namespace load failed for ‘xlsx’:
 .onLoad failed in loadNamespace() for 'rJava', details:
  call: inDL(x, as.logical(local), as.logical(now), ...)
  error: unable to load shared object 'C:/Users/Manuel
Mendoza/Documents/R/win-library/3.6/rJava/libs/x64/rJava.dll':
  LoadLibrary failure:  No se encontró el proceso especificado.

Gracias,
Manuel

[[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] Fórmula con variables al azar

2021-01-07 Por tema Manuel Mendoza
Gracias José Luis, y también a Carlos y a Juan. Respecto a lo que dices,
José Luis, de usar un random forest, es que es eso lo que estoy
programando, un RF. Tenía ya hecho el programa del bootstrap con árboles, y
a partir de él he programado un RF. He solucionado el problema que tenía
con lo que me ha dicho Carlos. Funciona bien, aunque me extraña que la
correlación sobre las muestras OOB no mejore respecto al bootstrap,
mientras que hecho con el paquete randomForest mejoraba sustancialmente.
Os lo pongo aquí, tal cual, por si queréis echarle un ojo.
Un saludo

set.seed(5)
data <- read.table(file="Data.csv",header=T,sep=",")

colnames(data)
p=19
nreps<- 1000

# Creamos una matriz vacía para guardar las predicciones de cada árbol:
OOBpreds<- matrix(NA, nrow=nrow(data),
ncol=nreps,dimnames=list(rownames(data)))

target <- c('IFd')
vars   <- setdiff(names(data), target)

for (i in 1:nreps){
  selected<-sample(1:nrow(data),size=floor((2/3)*nrow(data)),replace=T)
  training<- data[selected,]
  OOB<-data[-selected,]# El out of bag incluye las que no están en
el training data set
  num_vars <- floor(p/3)
  vars_samp <- vars[ sample(1:length(vars), num_vars)]
  fmla <- as.formula(paste(target, " ~ ", paste(vars_samp, collapse= "+")))
  fit <- rpart(fmla, data = training)
  OOBpreds[-selected, i]<-predict(fit, OOB)
  if(i%%10==0){print(paste("Iteración ",i))} # i%%10==0 significa: el resto
de dividir i entre 10 es 0
  }

ResOOB<-rowMeans(OOBpreds, na.rm=T) # se obtiene la media de todas las
predicciones para cada muestra
OOBBagging<-lm(data$IFd ~ ResOOB) # para calcular la correlación entre la
predicción y la observación
rsqOOBRT<-summary(OOBBagging)$adj.r.squared# R2

windows();plot(data$IFd ~
ResOOB,main=paste("R2=",round(rsqOOBRT,2)));abline(0,1,lty=2,col=2)






El jue, 7 ene 2021 a las 11:03, José Luis Cañadas ()
escribió:

> Hola Manuel.
> ¿No has pensado en hacer un randomforest, poniendo qeu use todos los datos
> en cada muestra bootstrap y un porcentaje de las variables?
>
> El jue, 7 ene 2021 a las 1:42, Carlos Ortega ()
> escribió:
>
>> Hola Manuel,
>>
>> Esta es una forma, uso el conjunto de datos "car90" que viene incluido en
>> "rpart".
>>
>> #-
>> library(rpart)
>>
>> data(car90)
>> target <- c('Mileage')
>> vars   <- setdiff(names(car90), target)
>>
>> num_loops <- 10
>> for( i in 1:num_loops) {
>>num_vars <- 6
>>vars_samp <- vars[ sample(1:length(vars), num_vars)]
>>fmla <- as.formula(paste(target, " ~ ", paste(vars_samp, collapse=
>> "+")))
>>fit <- rpart(fmla, data = car90)
>>print(fit)
>> }
>>
>> #-
>>
>> Se puede sofisticar esto, para capturar incluso la salida de cada
>> iteración... :-).
>>
>> Gracias,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>> El mié, 6 ene 2021 a las 22:44, Manuel Mendoza (<
>> mmend...@fulbrightmail.org>)
>> escribió:
>>
>> > Muy buenas, hago un árbol de regresión (aunque podría ser cualquier otro
>> > análisis) dentro de un loop y quiero que en cada vuelta coja un conjunto
>> > distinto de variables. En la df hay 19 predictores pero quiero que
>> utilice
>> > solo 6 de ellos, al azar, cada vez. ¿Qué debería poner donde hay un
>> > interrogante?
>> >
>> >   fit<- rpart(IFd ~ ? , data=training)
>> >
>> > Gracias, como siempre,
>> > Manuel
>> >
>> > [[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
>>
>

[[alternative HTML version deleted]]

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


[R-es] Fórmula con variables al azar

2021-01-06 Por tema Manuel Mendoza
Muy buenas, hago un árbol de regresión (aunque podría ser cualquier otro
análisis) dentro de un loop y quiero que en cada vuelta coja un conjunto
distinto de variables. En la df hay 19 predictores pero quiero que utilice
solo 6 de ellos, al azar, cada vez. ¿Qué debería poner donde hay un
interrogante?

  fit<- rpart(IFd ~ ? , data=training)

Gracias, como siempre,
Manuel

[[alternative HTML version deleted]]

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


[R-es] (sin asunto)

2020-08-24 Por tema Manuel Mendoza
Buenas tardes, tengo una variable bimodal (*var)*, de presencias y
ausencias (1s y 0s) y otra variable, *prob*, con las probabilidades que le
asigna un modelo (entre 0 y 1).
Con: *ggplot(Preds, aes(x=prob, fill= var )) + geom_density(alpha=.3)*
obtengo la distribución de las presencias y de las ausencias, por separado,
en función del valor de probabilidad asignado. Las dos curvas se cruzan
en un punto. ¿Sabéis si hay forma de averiguar el valor de *prob* de ese
punto analíticamente?
Gracias,
Manuel
[image: image.png]
___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


[R-es] Puntos de corte de dos curvas de densidad

2020-08-20 Por tema Manuel Mendoza
Buenas tardes, tengo una variable bimodal (*var)*, de presencias y
ausencias (1s y 0s) y otra variable, *prob*, con las probabilidades (entre
0 y 1) que le asigna un modelo.
Con: *ggplot(Preds, aes(x=prob, fill= var )) + geom_density(alpha=.3)*
obtengo la distribución de las presencias y de las ausencias, por separado,
en función del valor de probabilidad asignado. Las dos curvas se cruzan dos
veces. ¿Hay forma de determinar los valores de *prob* con los que se
corresponden esos puntos de corte?
Gracias,
Manuel

[[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] Redo en RStudio, Ctrl y?

2020-08-19 Por tema Manuel Mendoza
Gracias Xavier,  ctr+alt+Z si me funciona y me será de gran utilidad.
Carlos, si  pone "Ctrl Y",  y no funciona, pero sí funciona ctr+alt+Z,
supongo que es un error de programación. Miraré lo de la comunidad de
RStudio, a ver que me dicen.
Gracias,
Manuel

El mié., 19 ago. 2020 a las 21:57, Xavier-Andoni Tibau Alberdi (<
xaviti...@gmail.com>) escribió:

> En mi caso a veces funciona ctr+alt+Z.
>
> El mié., 19 ago. 2020 21:46, Carlos Ortega 
> escribió:
>
>> Hola Manuel,
>>
>> En Mac son otra combinación, pero sí que funcionan.
>> RStudio tiene un grupo de soporte (más bien es una Community) donde
>> podrías
>> comentarlo por si es un bug.
>>
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>>
>> El mié., 19 ago. 2020 a las 19:52, Manuel Mendoza (<
>> mmend...@fulbrightmail.org>) escribió:
>>
>> > Buenas tardes. Más bien una curiosidad.
>> > Echaba de menos poder rehacer con *Ctrl y* lo deshecho con *Ctrl z*. Lo
>> > curioso es que RStudio, desde hace un tiempo, en la pestaña *Edit*, al
>> lado
>> > de *Redo *pone "*Ctrl y", *pero *Ctrl y* no funciona. ¿sabe alguien por
>> > qué?
>> > Gracias,
>> > Manuel
>> >
>> > [[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
>>
>

[[alternative HTML version deleted]]

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


[R-es] Redo en RStudio, Ctrl y?

2020-08-19 Por tema Manuel Mendoza
Buenas tardes. Más bien una curiosidad.
Echaba de menos poder rehacer con *Ctrl y* lo deshecho con *Ctrl z*. Lo
curioso es que RStudio, desde hace un tiempo, en la pestaña *Edit*, al lado
de *Redo *pone "*Ctrl y", *pero *Ctrl y* no funciona. ¿sabe alguien por
qué?
Gracias,
Manuel

[[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] Superponer mapas en ggplot

2020-07-28 Por tema Manuel Mendoza
Gracias Juan Diego. Esa es exactamente la idea. Ahora me surge otro
problema: aun mirando los ejemplos, y otros que busqué en Internet, no
consigo que me represente los dos mapas.

Uno es:
  geom_point(data=NCDS,aes(x=lon,y=lat,color= PA),shape=15,size=1) +
  scale_color_manual(values=c("white","grey70"))+

y el otro:
 geom_point(data=NCDS,aes(x=lon,y=lat,color= ExtTG7085),shape=15,size=1) +
 scale_colour_gradient2(low =
"white",high="RED",midpoint=0,guide="colourbar",limits=c(0,200))+

Manuel




El mar., 28 jul. 2020 a las 9:02, Juan Diego Alcaraz-Hernández (<
jdalca...@gmail.com>) escribió:

> Quizás lo tienes solucionado con el argumento alfa (para fijar un nivel de
> transparencia en el gráfico).
>
> Te mando un ejemplo:
>
> https://rpubs.com/daniballari/ggplot
>
>
>
>
>
> El mar., 28 jul. 2020 a las 8:26, Manuel Mendoza (<
> mmend...@fulbrightmail.org>) escribió:
>
>> Buenos días. Tengo dos mapas que hago con ggplot (abajo) y necesito
>> superponer el 2º al 1º. En el 1º se representa la variable PA, binomial
>> (0,
>> 1), en gris, y en el 2º la variable ExtTG7085, que es numérica y va de 0 a
>> 200. La 2ª es un gradiente en rojo. Lo ideal sería que donde coinciden el
>> rojo de la 2ª se viera más oscuro, pero supongo que eso no es fácil.
>> Podría
>> también ser en otro color, pero manteniendo el gradiente. He pensado,
>> también, en crear una nueva variable, combinación de las dos, que me
>> permitiera hacer eso mismo, pero no encuentro la forma.
>>
>> Gracias por vuestra ayuda, una vez más,
>> Manuel
>>
>> ggplot(legend=FALSE)+
>>   geom_point(data=NCDS,aes(x=lon,y=lat,color= PA),shape=15,size=1) +
>>   scale_color_manual(values=c("white","grey70"))+
>>   geom_path(data=map_data('world'), aes(x=long, y=lat,group=group))
>>
>> ggplot(legend=FALSE)+
>>   geom_point(data=NCDS,aes(x=lon,y=lat,color= ExtTG7085),shape=15,size=1)
>> +
>> # PTP o FTP
>>   scale_colour_gradient2(low =
>> "white",high="RED",midpoint=0,guide="colourbar",limits=c(0,200))+
>>   geom_path(data=map_data('world'), aes(x=long, y=lat,group=group))
>>
>> [[alternative HTML version deleted]]
>>
>> ___
>> R-help-es mailing list
>> R-help-es@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
>
>
> --
> Juan Diego Alcaraz Hernández
>
> http://juandiegoalcaraz.wordpress.com/
> Research Group on Ecology of Inland Waters (GRECO)
> Research Group on Aquatic Ecology (EcoAqua)
> Institute of Aquatic Ecology
> University of Girona
>
> ·´¯`·.¸¸..><º>.·´¯`·.¸¸.·´¯`·.¸><º>`·.¸¸.·´¯`·.¸
> <º><`·.¸¸.·´¯`·.¸.<º><.¸. , . .·´¯`·.. <º><¸.·
>

[[alternative HTML version deleted]]

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


[R-es] Superponer mapas en ggplot

2020-07-28 Por tema Manuel Mendoza
Buenos días. Tengo dos mapas que hago con ggplot (abajo) y necesito
superponer el 2º al 1º. En el 1º se representa la variable PA, binomial (0,
1), en gris, y en el 2º la variable ExtTG7085, que es numérica y va de 0 a
200. La 2ª es un gradiente en rojo. Lo ideal sería que donde coinciden el
rojo de la 2ª se viera más oscuro, pero supongo que eso no es fácil. Podría
también ser en otro color, pero manteniendo el gradiente. He pensado,
también, en crear una nueva variable, combinación de las dos, que me
permitiera hacer eso mismo, pero no encuentro la forma.

Gracias por vuestra ayuda, una vez más,
Manuel

ggplot(legend=FALSE)+
  geom_point(data=NCDS,aes(x=lon,y=lat,color= PA),shape=15,size=1) +
  scale_color_manual(values=c("white","grey70"))+
  geom_path(data=map_data('world'), aes(x=long, y=lat,group=group))

ggplot(legend=FALSE)+
  geom_point(data=NCDS,aes(x=lon,y=lat,color= ExtTG7085),shape=15,size=1) +
# PTP o FTP
  scale_colour_gradient2(low =
"white",high="RED",midpoint=0,guide="colourbar",limits=c(0,200))+
  geom_path(data=map_data('world'), aes(x=long, y=lat,group=group))

[[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] Quedarse con las muestras de una BD que están presentes otra, basado en dos variables

2020-06-27 Por tema Manuel Mendoza
Gracias Carlos, Xacobe y Emilio, resuelto.
Manuel

El sáb., 27 jun. 2020 a las 13:12, Carlos Ortega ()
escribió:

> OK.
> Entonces lo del merge debiera de ser así (fíjate en el orden de los
> data.frames y lo del all.x)
>
> df_unido <- merge(*df_pequeno, df_grande,* by.x =
> c('clave_1_de_df_pequeno', 'clave_2_de_df_pequeno') , by.y =
> c('clave_1_de_df_pequeno', 'clave_2_de_df_pequeno'), *all.x= TRUE*)
>
> Con esto del "all" lo que haces es definir un tipo de join. Y ahora lo que
> quieres hacer es un left_join sobre el pequeño.
> Al data.frame pequeño añadirle nuevas columnas, pero solo en las que
> coincida con long/lat con el grande. Y el resto de filas del "grande"
> ignorarlas.
>
> El sáb., 27 jun. 2020 a las 13:08, Manuel Mendoza (<
> mmend...@fulbrightmail.org>) escribió:
>
>> Hola Carlos, hago lo que indicas, o eso creo, y la df resultante tiene
>> tantas filas como la más grande, cuando tenía que ser al revés.
>> data tiene 15376 y Data7050 14563. Son celdas de un mapa, cada una con su
>> lon y su lat, y quiero quedarme con las que estan en Data7050 (la menor).
>> Todas están también en data, por lo que data2 debería tener  14563 muestras.
>>
>> data2 <- merge(Data7085,data,  by.x = c('lon', 'lat') , by.y = c('lon',
>> 'lat'), all = T)
>>
>> Lo que pusiste:
>> df_unido <- merge(df_uno, df_dos, by.x = c('clave_1_de_df_uno',
>> 'clave_2_de_df_uno') , by.y = c('clave_1_de_df_dos', 'clave_2_de_df_dos'),
>> all = TRUE)
>>
>> El sáb., 27 jun. 2020 a las 11:23, Carlos Ortega (<
>> c...@qualityexcellence.es>) escribió:
>>
>>> Hola Manuel,
>>>
>>> Es un problema que puedes solucionar perfectamente con la función
>>> "merge()" para juntar dos data.frames.
>>> En esa función no tienes porqué usar solamente una clave común que sirva
>>> para unir los dos data.frames, puedes usar varias claves.
>>>
>>> Esta sería la sintaxis:
>>>
>>> df_unido <- merge(df_uno, df_dos, by.x = c('clave_1_de_df_uno',
>>> 'clave_2_de_df_uno') , by.y = c('clave_1_de_df_dos', 'clave_2_de_df_dos'),
>>> all = TRUE)
>>>
>>> Y el "all = TRUE" del final, sirve para que solo te salgan los comunes
>>> en los dos grupos.
>>>
>>> Gracias,
>>> Carlos Ortega
>>> www.qualityexcellence.es
>>>
>>>
>>>
>>> El vie., 26 jun. 2020 a las 21:39, Manuel Mendoza (<
>>> mmend...@fulbrightmail.org>) escribió:
>>>
>>>> Buenas tardes, quedarme con las muestras de una BD (data) que están
>>>> presentes en otra (datax), cuando se tiene una variable que nunca se
>>>> repite
>>>> (Key) es fácil: data <- subset(data,data$Key %in% datax$Key).
>>>> Mi problema es cuando la exclusividad viene dada por dos variables.
>>>> P.e.,
>>>> las coordenadas de un mapa: lon y lat.
>>>> ¿Como puedo quedarme con las muestras de una df cuya lon y lat son
>>>> iguales
>>>> a la de otra?
>>>> Gracias, como siempre,
>>>> Manuel
>>>>
>>>> [[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
>>>
>>
>
> --
> 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-es] Quedarse con las muestras de una BD que están presentes otra, basado en dos variables

2020-06-26 Por tema Manuel Mendoza
Buenas tardes, quedarme con las muestras de una BD (data) que están
presentes en otra (datax), cuando se tiene una variable que nunca se repite
(Key) es fácil: data <- subset(data,data$Key %in% datax$Key).
Mi problema es cuando la exclusividad viene dada por dos variables. P.e.,
las coordenadas de un mapa: lon y lat.
¿Como puedo quedarme con las muestras de una df cuya lon y lat son iguales
a la de otra?
Gracias, como siempre,
Manuel

[[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] Problema con un loop for

2020-06-26 Por tema Manuel Mendoza
  Gracias Carlos, resuelto. Como dices, el problema era que dentro del loop
se suspendía la función print que partial trae por defecto, y lo único que
había que hacer es indicársela.

  predictores <- c("frg","omn","bc","co","pr","gg","fg","mf","br","hc")

  for(i in 1:length(predictores)){
windows()
print(partial(RFfit, pred.var = predictores[i], which.class = "Ard",
plot = T,
prob = T, chull=T, type="classification",plot.engine =
"ggplot2", rug=T))
  }


El mié., 24 jun. 2020 a las 19:54, Manuel Mendoza (<
>>> mmend...@fulbrightmail.org>) escribió:
>>>
>>>> Gracias Carlos.
>>>> Partial es del paquete pdp, que utiliza un objeto obtenido con el
>>>> paquete randomforest
>>>> Te copio un resumen del script que funciona todo menos el for final,
>>>> aunque sí su interior si le doy a i un valor como 1
>>>>
>>>> library(randomForest)
>>>> RFfit<- randomForest(ecsta ~ ., data=data)
>>>> predictores <- c("frg","omn","bc","co","pr","gg","fg","mf","br","hc")
>>>>
>>>>   for(i in 1:length(predictores)){
>>>> windows()
>>>> partial(RFfit, pred.var = predictores[i], which.class = "Ard", plot
>>>> = T,
>>>> prob = T, chull=T, type="classification",plot.engine =
>>>> "ggplot2", rug=T)
>>>>   }
>>>>
>>>>
>>>>> El mié., 24 jun. 2020 a las 19:03, Manuel Mendoza (<
>>>>> mmend...@fulbrightmail.org>) escribió:
>>>>>
>>>>>> Vuelvo al ataque, pues ya os lo pregunté.  Javier Rubén me dió una
>>>>>> posible
>>>>>> explicación, pero finalmente no me resolvió el problema. Así que lo
>>>>>> vuelvo
>>>>>> a intentar, a ver si hay más suerte.
>>>>>>
>>>>>> Si hago, p.e., i = 1 y corro las 2 filas de dentro del loop que pongo
>>>>>> abajo, me abre una ventana y me hace el
>>>>>> partial() de frg, es decir, lo hace bien, pero si corro todo el loop,
>>>>>> me
>>>>>> abre las 9 ventanas (de 9 predictores) pero las deja vacías.
>>>>>>
>>>>>> predictores <- c("frg","omn","bc","co","pr","gg","fg","mf","br","hc")
>>>>>>
>>>>>> for(i in 1:length(predictores)){
>>>>>> windows()
>>>>>> partial(RFfit, pred.var = predictores[i], which.class = "Ard",
>>>>>> plot = T,
>>>>>> prob = T, chull=T, type="classification",plot.engine = "ggplot2",
>>>>>> rug=T)
>>>>>>   }
>>>>>>
>>>>>> Esto está, a su vez, dentro de otro loop con varias categorías, por
>>>>>> lo que
>>>>>> al final son 36 gráficos, que debo hacer con distintos parámetros,
>>>>>> por lo
>>>>>> que me sería muy útil solucionar el problema, que debe ser una
>>>>>> chorrada.
>>>>>>
>>>>>> Gracias por vuestra ayuda,
>>>>>> Manuel
>>>>>>
>>>>>> [[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
>>>>>
>>>>
>>>
>>> --
>>> Saludos,
>>> Carlos Ortega
>>> www.qualityexcellence.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-es] Problema con un loop for

2020-06-24 Por tema Manuel Mendoza
Vuelvo al ataque, pues ya os lo pregunté.  Javier Rubén me dió una posible
explicación, pero finalmente no me resolvió el problema. Así que lo vuelvo
a intentar, a ver si hay más suerte.

Si hago, p.e., i = 1 y corro las 2 filas de dentro del loop que pongo
abajo, me abre una ventana y me hace el
partial() de frg, es decir, lo hace bien, pero si corro todo el loop, me
abre las 9 ventanas (de 9 predictores) pero las deja vacías.

predictores <- c("frg","omn","bc","co","pr","gg","fg","mf","br","hc")

for(i in 1:length(predictores)){
windows()
partial(RFfit, pred.var = predictores[i], which.class = "Ard", plot = T,
prob = T, chull=T, type="classification",plot.engine = "ggplot2", rug=T)
  }

Esto está, a su vez, dentro de otro loop con varias categorías, por lo que
al final son 36 gráficos, que debo hacer con distintos parámetros, por lo
que me sería muy útil solucionar el problema, que debe ser una chorrada.

Gracias por vuestra ayuda,
Manuel

[[alternative HTML version deleted]]

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


[R-es] for-loop con partial

2020-06-10 Por tema Manuel Mendoza
Muy buenas, ¿a ver si hay alguien que sepa por qué en este loop, si hago,
p.e., i = 1 y corro las 2 filas de dentro, me abre una ventana y me hace el
PDP de frg, es decir, lo hace bien, pero si corro todo el loop me abre las
ventanas pero las deja vacías?

predictores <- c("frg","omn","bc","co","pr","gg","fg","mf","br","hc")
for(i in 1:length(predictores)){
windows()
partial(RFfit, pred.var = predictores[i], which.class = "Ard", plot =
T,prob = T, chull=T, type="classification",plot.engine = "ggplot2", rug=T)
  }

Gracias,
Manuel

[[alternative HTML version deleted]]

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


[R-es] data de un paquete

2020-06-09 Por tema Manuel Mendoza
Un par de preguntas sencillas ¿cómo puedo saber las bases de datos que
incluye un paquete de r? ¿cómo se abren: data(nombre)?
Gracias,
Manuel

[[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] líneas sobre un mapa

2020-06-06 Por tema Manuel Mendoza
Gracias Emilio, no sé cómo ponerte un ejemplo reproducible. El mapa es un
ggplot como el que te pongo abajo, y el análisis que se hace en cada vuelta
del loop (que tienes abajo, del anterior email) es un árbol de
clasificación que se entrena con una parte del mapa, dada por la longitud
(lon), y se testa con la otra. Los resultados se almacenan en Preds. Como
puedes ver, la i del loop/for determina lon, una de las variables de la
base de datos del mapa, y a cada iteración del loop (valor de lon) me
indica por qué valor va (print(i)). En vez de eso, o además de, me gustaría
que me representase un linea sobre el mapa que se hizo previamente con
ggplot, que se corresponda con el valor de lon.
Este es el mapa (sigo abajo):

world<-map_data('world')
pyt<-  ggplot(data, aes(x = longitud, y = latitud, color =
ptyrup,size=ptyrup)) +
  geom_point()+
  scale_color_manual(values = c('lightslateblue','black')) +
  scale_size_manual(values=c(1,2))+
  theme(legend.position="top")
windows();pyt

Si en el loop incluyo esto:
  pyt<-pyt+geom_vline(xintercept = i)
  print(pyt)

a cada iteración me representa en el mapa la línea que yo quiero, pero lo
hace representando el mapa de nuevo cada vez. La idea es que me añada la
línea, cada vez, pero sin tener que representar el mapa, es decir, sobre el
que ya estaba. Es por el efecto visual. Parece una tontería, pero frente a
una audiencia esos detalles importan (hasta cierto punto).

Gracias,
Manuel












El sáb., 6 jun. 2020 a las 12:01, Emilio L. Cano ()
escribió:

> Hola,
>
> Como ggplot son gráficos tipo “grid” seguramente puedas añadir las líneas
> como un objeto “grob” sin tener que recargar el mapa.
>
> Con un ejemplo reproducible lo podría confirmar.
>
> Un saludo,
>
> Emilio L. Cano
> http://emilio.lcano.com
>
>
>
> El 5 jun 2020, a las 17:48, Manuel Mendoza 
> escribió:
>
> Gracias Emilio y Jorge. Tengo que explicarlo mejor. Mostrando a una
> audiencia cómo hacer un tipo de análisis, se hace un loop (abajo) que
> analiza un mapa por regiones longitudinales. Tal y como está el script,
> print(i) te indica la longitud por la que va (de 10º en 10º) pero me
> gustaría que en vez de eso te fuese representando una línea vertical sobre
> el mapa, que he representado previamente con ggplot. No es imprescindible,
> pero quedaría bien.
>
> Preds <- data.frame()
>
> for (i in seq(from = -180, to = 170, by = 10)){
>   traindata <- subset(data, lon < i|lon>= i+10)
>   testdata <- subset(data,(lon> i & lon<= i+10))
>
>   fitrp <- rpart(Clst ~ .- lon - lat, data=traindata,method = "class")
>   print(i)
>
>   prd <- predict(fitrp, testdata, type="class") # se aplica el modelo a
> las muestras test
>   testdata$prd<-prd
>   Preds<-rbind(Preds,testdata)
> }
>
> El vie., 5 jun. 2020 a las 16:18, Emilio L. Cano ()
> escribió:
>
>> Hola Manuel,
>> Al ser ggplot supongo que será como en cualquier gráfico en ejes
>> coordenados, añade una capa:
>>
>> ggplot(…..) + geom_vline(xintercept = vector_de_valores_x)
>>
>> Un saludo,
>>
>> Emilio L. Cano
>> http://emilio.lcano.com
>>
>>
>>
>> > El 5 jun 2020, a las 13:48, Manuel Mendoza 
>> escribió:
>> >
>> > Buenos días ¿sabéis si hay alguna forma de añadir una recta vertical
>> sobre
>> > un mapa hecho previamente con ggplot? Lo que hago ahora es cargar
>> > nuevamente el mapa con la línea añadida (una serie de líneas añadidas
>> > secuencialmente en un loop) pero me gustaría que añadiese las líneas sin
>> > cargar nuevamente el mapa.
>> > Gracias,
>> > Manuel
>> >
>> >   [[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] líneas sobre un mapa

2020-06-05 Por tema Manuel Mendoza
Gracias Emilio y Jorge. Tengo que explicarlo mejor. Mostrando a una
audiencia cómo hacer un tipo de análisis, se hace un loop (abajo) que
analiza un mapa por regiones longitudinales. Tal y como está el script,
print(i) te indica la longitud por la que va (de 10º en 10º) pero me
gustaría que en vez de eso te fuese representando una línea vertical sobre
el mapa, que he representado previamente con ggplot. No es imprescindible,
pero quedaría bien.

Preds <- data.frame()

for (i in seq(from = -180, to = 170, by = 10)){
  traindata <- subset(data, lon < i|lon>= i+10)
  testdata <- subset(data,(lon> i & lon<= i+10))

  fitrp <- rpart(Clst ~ .- lon - lat, data=traindata,method = "class")
  print(i)

  prd <- predict(fitrp, testdata, type="class") # se aplica el modelo a las
muestras test
  testdata$prd<-prd
  Preds<-rbind(Preds,testdata)
}

El vie., 5 jun. 2020 a las 16:18, Emilio L. Cano ()
escribió:

> Hola Manuel,
> Al ser ggplot supongo que será como en cualquier gráfico en ejes
> coordenados, añade una capa:
>
> ggplot(…..) + geom_vline(xintercept = vector_de_valores_x)
>
> Un saludo,
>
> Emilio L. Cano
> http://emilio.lcano.com
>
>
>
> > El 5 jun 2020, a las 13:48, Manuel Mendoza 
> escribió:
> >
> > Buenos días ¿sabéis si hay alguna forma de añadir una recta vertical
> sobre
> > un mapa hecho previamente con ggplot? Lo que hago ahora es cargar
> > nuevamente el mapa con la línea añadida (una serie de líneas añadidas
> > secuencialmente en un loop) pero me gustaría que añadiese las líneas sin
> > cargar nuevamente el mapa.
> > Gracias,
> > Manuel
> >
> >   [[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-es] loop-for

2020-06-04 Por tema Manuel Mendoza
Buenos días ¿Alguien sabe por qué en este loop, si hago, p.e., i = 1 y
corro las dos últimas filas me lo hace bien (con "frg"), pero si corro todo
el loop me abre 12 ventanas, en vez de 10 (la dimensión del vector
predictores) y además vacías?

predictores <- c("frg","omn","bc","co","pr","gg","fg","mf","br","hc")
  for(i in 1:length(predictores)){
windows()
partial(RFfit, pred.var = predictores[i], which.class = "Ard", plot = T,
 prob = T, chull=T, type="classification",plot.engine =
"ggplot2", rug=T)
  }

Gracias,
Manuel

[[alternative HTML version deleted]]

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


[R-es] mapas ggplot comparables

2020-05-28 Por tema Manuel Mendoza
Buenas tardes. Hago varios mapas con ggplot y scale_colour_gradient2. Los
colores dependen de una variable que tiene distintos rangos. Eso hace que
no sean comparables. Pretendo que me haga todos con los límites del que
tiene un rango mayor. Este es el código:

ggplot(legend=FALSE)+
geom_point(data=Data,aes(x=lon,y=lat,color=
chFrg7045),shape=15,size=1.5) +
scale_colour_gradient2(low = "blue",high="red",midpoint=0,
guide="colourbar")+geom_path(data=world, aes(x=long,
y=lat,group=group))+
labs(title =  "chFrg7045")

Gracias, como siempre,
Manuel

[[alternative HTML version deleted]]

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


[R-es] Tipo de gráfico idóneo

2020-05-21 Por tema Manuel Mendoza
Esta vez no es un problema, pero quizás podáis aconsejarme sobre qué
gráfico elegir, pues hice algunas pruebas y no queda muy bien.
Quiero comparar 9 rectas (o lo que sea) hechas de tan solo dos puntos.
Para 9 grupos de especies distintos tengo un dato para 2050 y otro para
2070, y pretendo que se aprecie bien la evolución (de tan solo dos fechas)
de cada uno de los 9 grupos, y las diferencias entre grupos. Podría ser en
un mismo gráfico o un gráfico para cada grupo, pero que permita visualizar
las diferencias.
Gracias, como siempre,
Manuel

[[alternative HTML version deleted]]

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


[R-es] Tomar los elementos de una colMeans sin los nombres

2020-05-17 Por tema Manuel Mendoza
Muy buenas tardes, llevo un rato con una chorrada que casi me da vergüenza
preguntar, pero no doy con la tecla. Creo un vector con las medias de
algunas columnas de una df:

distmeans<-colMeans(df[,1:6])

Son 6 elementos, pero siguen manteniendo el nombre de las variables
originales, incluso cuando creo otros vectores a partir de ellos:

rcp26<-c(distmeans[1], distmeans[4])
rcp45<-c(distmeans[2], distmeans[5])
rcp85<-c(distmeans[3], distmeans[6])

Hago un cbind con ellos pero sigue incluyendo los nombres originales de las
variables y no sale lo que busco:

distdf<-data.frame(cbind(year,rcp45,rcp45,rcp85))

¡No consigo librarme de ellos!

Estoy seguro de que se puede hacer todo esto de forma sencilla, pero no me
sale :(

Gracias,
Manuel

[[alternative HTML version deleted]]

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


[R-es] Magrittr Forward-Pipe Operator

2020-05-11 Por tema Manuel Mendoza
Buenos días, no sé por qué no encuentra la función "%>%"

Error in data %>% gather(x, y, distmar:ice) %>% ggplot(aes(x = y, y =
ptyrup,  :
  no se pudo encontrar la función "%>%"

p1 = data %>%
  ggplot(aes(x = ptyrup, fill = ptyrup)) +
  geom_bar(alpha = 0.8) +
  scale_fill_tableau() +
  guides(fill = F)

Gracias,
Manuel

[[alternative HTML version deleted]]

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


[R-es] Procedimiento car0

2020-05-09 Por tema Manuel Mendoza
Alguien sabe lo que significa?

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


[R-es] Procedimiento car0

2020-05-09 Por tema Manuel Mendoza
Alguien sabe lo que significa?

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


[R-es] Error implementando FeatureImp$new del paquete iml

2020-05-07 Por tema Manuel Mendoza
Hola de nuevo. Al aplicar el comando FeatureImp del paquete iml me daba
este error:
Error in as.double(y) :
  cannot coerce type 'environment' to vector of type 'double'

Me fui al ejemplo original con la base de datos Boston, para ver las
diferencias con mi script, y para mi sorpresa, da el mismo error. Este es
el código:

data("Boston", package = "MASS")
rf <- randomForest(medv ~ ., data = Boston, ntree = 50)
X <- Boston[which(names(Boston) != "medv")]
predictor <- Predictor$new(rf, data = X, y = Boston$medv)
imp <- FeatureImp$new(predictor, loss = "mae")
plot(imp)

tras la última línea me da ese error. He buscado en la web, pero las
respuestas no me ayudaron.

Gracias una vez más por vuestra ayuda,
Manuel

[[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] Instalar paquetes no disponibles para la versión actual

2020-05-01 Por tema Manuel Mendoza
He encontrado esto:

Package ‘forestFloor’ was removed from the CRAN repository.

Formerly available versions can be obtained from the archive
<https://cran.r-project.org/src/contrib/Archive/forestFloor>.

Archived on 2020-02-19 as check problems were not corrected despite
reminders.

Please use the canonical form
https://CRAN.R-project.org/package=forestFloor
<https://cran.r-project.org/package=forestFloor> to link to this page.

Cuando voy a  archive
<https://cran.r-project.org/src/contrib/Archive/forestFloor> me sale una
lista de ficheros comprimidos. He descomprimido algunos, y a pesar de que
hay una carpeta que se llama inst, ninguno de los scripts que abrí me
permite instalar forestfloor :(

A ver si alguien puede ayudarme, pues si no, pierdo todo el trabajo que ya
hice con ese paquete.

Gracias,

Manuel


El vie., 1 may. 2020 a las 10:43, José Trujillo Carmona ()
escribió:

> El mensaje de que no está disponible para esa versión aparece incluso si
> intentas instalar un paquete que no existe para ninguna versión
> (inventado, vaya). Es un mensaje con una redacción un tanto
> desafortunada porque te hace pensar que actualizando lo puedes resolver
> y no tiene nada que ver.
>
> Para el caso de edarf en cran puedes encontrar:
>
> > https://cran.r-project.org/web/packages/edarf/index.html
> >
> > Package ‘edarf’ was removed from the CRAN repository.
> >
> > Formerly available versions can be obtained from thearchive
> > <https://cran.r-project.org/src/contrib/Archive/edarf>.
> >
> > Archived on 2020-03-07 as check problems were not corrected despite
> > reminders.
> >
> > Please use the canonical formhttps://CRAN.R-project.org/package=edarf
> > <https://cran.r-project.org/package=edarf>to link to this page.
> >
> Para instalar un paquete antiguo puedes descargarte la fuente desde la
> referencia anterior e instalarlo utilizando la función install.packages.
>
> Consulta la ayuda de esta función (help(install.packages) y ten en
> cuenta que la opción "repos" puede ser una url de internet o de tu
> ordenador local (ruta completa hasta el archivo fuente).
>
> Y después necesitarás mucha suerte para resolver todas las dependencias
> que te irán apareciendo durante la compilación.
>
> No es una solución segura, pero a veces funciona.
>
> Saludos.
>
>
> El 30/4/20 a las 18:15, Manuel Mendoza escribió:
> > Buenas tardes. Tenía la versión 3.6.0 de R. Quería instalar el paquete
> > edarf, pero decía que no estaba disponible para esa versión. Actualicé R
> a
> > la versión 4.0.0, que creo que es la última, pero al tratar de reinstalar
> > forestFloor, me dice que no está disponible para la versión 4.0.0. He
> > abierto R 3.6.0 directamente, cliqueo install.packages("forestfloor") y
> > ahora me dice que no está disponible para esa versión.
> > A ver si me podéis echar una mano,
> > Gracias,
> > Manuel
> >
> >   [[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
>

[[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] Instalar paquetes no disponibles para la versión actual

2020-05-01 Por tema Manuel Mendoza
Gracias José, la cuestión es que yo tenía forestfloor, que es el que
realmente me hace falta, y funcionaba bien. Ahora tengo unos cuantos
scripts con resultados importantes que no puedo reproducir. Un colega me ha
dicho que le pasó algo parecido y consiguió instalarlo desde un GitHub,
pero yo sigo sin conseguirlo.

El vie., 1 may. 2020 a las 10:43, José Trujillo Carmona ()
escribió:

> El mensaje de que no está disponible para esa versión aparece incluso si
> intentas instalar un paquete que no existe para ninguna versión
> (inventado, vaya). Es un mensaje con una redacción un tanto
> desafortunada porque te hace pensar que actualizando lo puedes resolver
> y no tiene nada que ver.
>
> Para el caso de edarf en cran puedes encontrar:
>
> > https://cran.r-project.org/web/packages/edarf/index.html
> >
> > Package ‘edarf’ was removed from the CRAN repository.
> >
> > Formerly available versions can be obtained from thearchive
> > <https://cran.r-project.org/src/contrib/Archive/edarf>.
> >
> > Archived on 2020-03-07 as check problems were not corrected despite
> > reminders.
> >
> > Please use the canonical formhttps://CRAN.R-project.org/package=edarf
> > <https://cran.r-project.org/package=edarf>to link to this page.
> >
> Para instalar un paquete antiguo puedes descargarte la fuente desde la
> referencia anterior e instalarlo utilizando la función install.packages.
>
> Consulta la ayuda de esta función (help(install.packages) y ten en
> cuenta que la opción "repos" puede ser una url de internet o de tu
> ordenador local (ruta completa hasta el archivo fuente).
>
> Y después necesitarás mucha suerte para resolver todas las dependencias
> que te irán apareciendo durante la compilación.
>
> No es una solución segura, pero a veces funciona.
>
> Saludos.
>
>
> El 30/4/20 a las 18:15, Manuel Mendoza escribió:
> > Buenas tardes. Tenía la versión 3.6.0 de R. Quería instalar el paquete
> > edarf, pero decía que no estaba disponible para esa versión. Actualicé R
> a
> > la versión 4.0.0, que creo que es la última, pero al tratar de reinstalar
> > forestFloor, me dice que no está disponible para la versión 4.0.0. He
> > abierto R 3.6.0 directamente, cliqueo install.packages("forestfloor") y
> > ahora me dice que no está disponible para esa versión.
> > A ver si me podéis echar una mano,
> > Gracias,
> > Manuel
> >
> >   [[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
>

[[alternative HTML version deleted]]

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


  1   2   >