Foro de discusión y soporte para usuarios de R

Un foro abierto a todos los temas relacionados con R que quiera.
Nota: Una url estable a este foro es http://knuth.uca.es/R-foro.

Comparación de filas

de David Tarin Bernad -

Buenos dias,


Como podria hacer para comparar una matrix (nx3) y y otra (mx3), donde obtuviese las filas que son coincidentes en ambas, es decir, aquellas filas en las que son iguales para ambas matrices.


He utilizado %in% pero no me llega a servir puesto que me coge lo coincidente para topdo los datos y hay un momento en el que no lo puedo seguir reduciendo.


Un saludo.

Nowcasting

de Camilo Arboleda -

Buen día a todos, hace poco estaba trabajando con modelos de Nowcasting, estos modelos tienen como input muchas series de tiempo. Quiero hacer una estimación del PIB, mi pregunta es sobre el funcionamiento del paquete Nowcasting en R. Este paquete hace uso del filtro de Kalman, como indica la teoría que  debería hacerse. También me gustaría saber que hace con las series que no son estacionarias. Yo planeaba estacionalizar todas las series y luego aplicar el nowcasting. Gracias

Dibujar matriz temperatura.

de Yurena Hernández -


Hola, tengo un archivo NetCDF (extensión .nc) donde se recogen datos de temperatura y donde la longitud viene de 0 a 360.

Usando la librería "raster" he conseguido representar el Índico y Pacífico. Pero el problema aparece al representar el Atlántico puesto que la longitud a tomar va de 250 a 40 (o lo que es lo mismo, de 250 a 360 y de 0 a 40).
He intentado con varias siguientes síntasis, pero no consigo el resultado deseado.
Me pareció que esta síntesis era la más cuerda, es decir, sumar 40 a 360, pero sólo me plotea hasta 360. Cosa lógica ya que los datos sólo llegan a 360.
plot(variable,col=rainbow(1000),main="Sea Surface Temperature (Atlantic Ocean)",xlab="Longitude",ylab="Latitude",xlim=c(250,400),ylim=c(-90,90),asp=0)

Otra opción que he pensado es crear antes una matriz extrayendo los datos del Atlántico y luego representarla. Pero parece que la función plot no sirve para dibujar estos mapas y con la función image me cambia las unidades de los ejes y voltea el dibujo.

Alguien me podría ayudar de alguna forma?. Ya sea con la síntasis de plot o con otra que me muestre los valores de longitud y latitud sin modificar?.

Regresión múltiple

de Silvina Ale -

Hola,tengo el sgte problema. Necesito hacer regresión múltiple en R. El tema es que el resultado sale NA , a la tabla no le faltan datos. Utilice la función is.na para la data.frame, salen todas las variables FALSE en todas las filas,por lo que averigue eso quiere decir que no hay datos NA. Hay 3 columnas que me dan NA a las cuales les hago el is.na a cada una Y dan. FALSE. También opté ppr omitir éstas 3 columnas, e igual sale el p:NA Y r2ajustado: NAN. Probé la función na.omit. el resultado es el mismo. Ayuda por favor

AFC con Lavaan

de David Sánchez Oliva -

Hola, 

he realizado un AFC mediante Lavaan a través del siguiente comando:

modelo4 <- 'Intrinseca =~ M1 + M6 + M11 + M16
Identificada =~ M2 + M7 + M12 + M17
Introyectada =~ M3 + M8 + M13 + M18
Externa =~ M4 + M9 + M14 + M19
Desmotivacion =~ M5 + M10 + M15 + M20
Autonoma =~ Intrinseca + Identificada
Controlada =~ Introyectada + Externa'
fit <- cfa(modelo4, data = datos)
summary(fit, fit.measures = TRUE, standardized=TRUE)

El resultado se muestra en la siguiente figura:

Como se puede apreciar, en dos casos, el peso de regresión es superior a 1, y como conscuencia, tienen una varianza negativa.

¿Cuál puede ser error? y en todo caso, ¿Cómo se podría solventar?

Muchas gracias.

¿cómo insertar el valor en una columna si se cumpre una condición en R?

de Osvaldo Rama -

Espero me puedan ayudar con el siguiente problema por favor en R.

Tengo una tabla 1 de codigos y referencias, ej. auto = automovil, bici = bicicleta, moto = motocicleta.

Y tengo otra tabla 2 que tiene más filas con más codigos (ej. auto, auto, bici, moto, moto, bic, auto, auto) pero sin referencias.

Mi problema es que no se como agregar las referencias de la tabla 1 (automovil, bicicleta, motocicleta) a todos los codigos de la tabla 2

Para que mi resultado sea en la tabla 2: ej. auto = automovil, auto = automovil, bici = bicicleta, moto = motocicleta, moto = motocicleta, etc..



Anovas

de borja aramburu munoa -

Hola!

Que tipo de estudio de suposiciones básicas para llevar a cabo una Anova debería hacer en una base de datos con número de muestras mayor a 50? (he leído que cuando la cantidad se excede de 50 shapiro ya no es fiable) Gracias!!

Join de dos marco de datos

de Marlon Pabón -

Tengo el siguiente inconveniente: tengo dos dataframes con la misma estructura (variables) de dos trimestres diferentes, de reportes de gastos de entidades, la cuestión está en que en el siguiente trimestre reporta un mayor número de entidades que el trimestre anterior (el número de filas se incrementa cada trimestre) pero debo hacer un ejercicio tipo panel en donde tenga los registros trimestrales de todo un año solo con las entidades que reportan cada trimestre.

En mi caso son 41.000 registros del primer trimestre  y 45.000 del segundo semestre, el resultado que espero es un panel de dos trimestres con 41000 filas, pero al hacer los join me resultan muchas más. Lo único que necesito es agregar una sola columna de valores del segundo semestre

Quisiera saber como hacer un join que me resulte en un data frame de solo 41000 filas que me traiga los valores del segundo semestre de una sola variable. Gracias


Trabajar con fechas

de eva rota -

Buenos días,

Tengo un problema con las fechas de una base de datos donde hay una fecha de inicio y otra de fin sobre un consumo de agua, pero necesito saber si por ejemplo el intervalo de fechas es: 

FECHA INICIO: 2019-01-08

FECHA FIN: 2019-03-08

Saber cuántos días pertenecen a enero en este caso serian 23, cuáles a febrero que sería 29 y cuáles a marzo que son 8. 

He conseguido crear dos intervalos con el paquete lubridate, uno donde x <- interval(FECHA INICIO, FECHA FIN), y otro intervalo donde y <- interval(inicioenero - finalenero) "teniendo en cuenta que el intervalo es entre el 01/01/2019 y 31/01/2019" y entonces comparar los dos intervalos y ver si se solapan o no con el comando: int_overlaps(x,y)

El resultado que da te dice 'TRUE' si el intervalo de fechas de mi base de datos se solapa con el intervalo del mes de enero y 'FALSE' si no se solapa. 

Sólo me faltaria saber qué días són los que pertencen a enero, en mi caso de ejemplo serian 23. 

Alguien sabe algun comando que me de este resultado? Sería de mucha ayuda,  Muchas gracias!!!

Un saludo.

 Fdo: Eva Roa
 Blogger como hacer un curriculum

Clustering Jerarquico aplicado a microbiologia

de Elliot Josué Gómez Vanegas -

Tengo un data-frame donde básicamente tengo 31 individuos (CEPAS) , a los cuales les he realizado 114 pruebas (MEDIO DE CULTIVO) a cada uno y los resultados de esas pruebas (que cada individuo reacciona de manera particular) en la columna (FENOTIPO), el data frame incluye otras variables de identidad como se ven en la imagen.

Los resultados (que están en la columna FENOTIPO) se expresan como positivo (+), negativo (-), debil (W), lento (S), latente (LAT).

El problema es que de los 31 quiero seleccionar n cantidad de individuos digamos 5, pero que gran representativos de todos, osea quiero hacer una especie de match de los 5 sub grupos con individios más parecidos en tus resultados, pero a la vez más diferentes de los otros 4 subgrupos.

La opción lógica es un análisis de clustering jerárquico, pero no se como implementarlo en mi data frame, si necesito convertir los valores de la columna de resultados a números, o hay alguna otra alternativa.

Nota: La pregunta va mas orientada a que función usar para lograr subgrupos heterogeneos entre si pero con individuos homogeneos, o en todo caso como implementar el clustering jerarquico para logarlo, que metodo como definir las distancias.

Cualquier ayuda sera muy agradecida.