es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El vectorplot muestra el mensaje de error “subset.default(sa, 1) : ‘subset’ debe ser lógico”.

He estado ejecutando el siguiente código en RStudio para probar la funcionalidad de vectorplot en R:

library(raster)
library(rasterVis)
library(lattice)

<p>proj <- CRS('+proj=longlat +datum=WGS84')</p>

<p>df <- expand.grid(x=seq(-2, 2, .01), y=seq(-2, 2, .01))
df$z <- with(df, (3<em>x^2 + y)</em>exp(-x^2-y^2))
r1 <- rasterFromXYZ(df, crs=proj)
df$z <- with(df, x<em>exp(-x^2-y^2))
r2 <- rasterFromXYZ(df, crs=proj)
df$z <- with(df, y</em>exp(-x^2-y^2))
r3 <- rasterFromXYZ(df, crs=proj)
s <- stack(r1, r2, r3)
names(s) <- c('R1', 'R2', 'R3')</p>

<p>vectorplot(r1)

El código anterior me está dando el siguiente error:

Error in subset.default(sa, 1) : ‘subset’ must be logical

El código estaba funcionando bien en algunas versiones anteriores de los paquetes (raster, rastervis) en Mac OS. ¿Podría sugerir cómo resolver el error y hacer que vectorplot vuelva a funcionar?

Actualmente, estoy usando Windows 10 y las siguientes versiones de R y RStudio:
– R: 4.1.2 (2021-11-01)
– RStudio: 2021.09.1+372 “Ghost Orchid” Release (2021-11-08) para Windows

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que hay un problema con la función subset, que es llamada dentro de la función vectorplot. Una solución posible es actualizar el paquete lattice, que provee la función subset, a una versión compatible con la versión actual de R.

    Para actualizar el paquete lattice, puedes ejecutar el siguiente comando en RStudio:

    install.packages("lattice")
    

    Después de actualizar el paquete, puedes intentar ejecutar la función vectorplot de nuevo:

    vectorplot(r1)
    

    Si el problema persiste, también puedes intentar actualizar los paquetes raster y rastervis a sus últimas versiones, utilizando el mismo comando de arriba pero reemplazando “lattice” por “raster” o “rastervis”.

    También es posible que el problema esté relacionado con cambios en el comportamiento de la función subset entre versiones de R y/o el paquete lattice. En este caso, podrías necesitar modificar el código que llama a la función vectorplot. Podrías tratar de utilizar una función de visualización diferente o modificar los datos de entrada a la función vectorplot.

    Si ninguna de estas soluciones funciona, podrías intentar buscar ayuda de los mantenedores del paquete o de la comunidad de R para ver si hay un problema conocido o una solución alternativa para el mensaje de error en particular que estás viendo.

Comments are closed.