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 https://knuth.uca.es/R-foro.

Como intercalar datos

de Antti K. Risto -

Hola soy novato en esto y supongo que esta es una pregunta muy sencilla :)


tengo un vector1 con datos (digamos a,b,c,d) y otro vector2 con 4 ceros.

Como puedo añadir los 4 ceros del vector2 después de cada dato del vector1?

De tal manera que quede

(a,0,0,0,0,b,0,0,0,0,c,0,0,0,0,d,0,0,0,0)


Gracias



Categoría base variables dicotómicas en R

de mauricio gap -

Hola a todos!


Soy nuevo utilizando este software y me gustaría saber dos cosas muy básicas:


1. Al estimar una regresión logística con variables categóricas (3. 4, 5+ categorías) por medio del comando gml,  me muestra los coeficientes de cada categoría, ¿cómo puedo decirle que me muestre el coeficiente de la variable sin que desprenda todas las categorías? Ej: Variable raza (indigena, negro, blanco) me arroja coeficiente para cada categoría pero quiero el coeficiente de la variable "raza" en su conjunto.


2. Con mi variable dependiente (dummy) (1- participa 0- No participa) ¿cómo se cuál está tomando como base? ¿toma el 1 o toma el 0 como categoría base?


Muchas gracias por su ayuda!

Dudas con datos "Nor avaible"

de Cristina Alonso -

Buenas tardes,

estoy trabajando con R haciendo correlacioens, mi tabla matriz tiene bastantes casillas en blanco (no hay muestra), que en R aparecen como NA.

Cuando hago las correlaciones, con varias variables, función "cor", el resultado es NA.

Siguiendo el enlace: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/na.fail.html, he omitido los valores en blanco con la función: "na.omit".....pero ahora no se exactamente qué ha hecho el programa pues me da unos resultados sin NA pero posiblemente se han descolocado los demás resultados. Otra pregunta es: cómo dehago la función "na.omit"?

Alguien me puede ayudar con este tema?


Gracias

PROYECTAR PBI NOWCASTING Y ECUACIONES PUENTE

de horacio martin pratto Chiarella -

Hola Estimados!! Un gusto conocerlos. Me encuentro tratando de proyectar el PBI de mi país para usar como variable independiente en una regresion múltiple. Y por todo lo que he leído la mejor técnica es Nowcasting con ecuaciones puente y Análisis de factores principales, pero no encuentro aplicación practica en R o algún tutoría al respecto. Si alguno me puede ayudar me será de gran ayuda!!! Muchas Gracias ! y buen comienzo de semana!

Función para crear vector con datos filtrados

de Víctor Ramón -

Antes que nada decir que esta es mi primera consulta en el foro y también que acabo de descubrir esta increible aplicación, por lo que os pido paciencia y comprensión.

Lo que sí he podido entender es que las posibilidades son inmensas por lo que, por pedir que no quede.

Esta es mi consulta:

Tengo recopilados una cantidad inmensa de datos producto de muchos años de trabajo. En este gran data.frame tengo, entre otros 27 campos: fecha, sexo y edad.

Lo que quiero es crear automáticamente, matrices con los datos ya filtrados por esos 3 campos. Es decir:

filt2003H8 sería el subgrupo fecha=2003, sexo="H" y edad = 8

para así poder realizar pruebas o gráficas rápidamente llamando sólo a la matriz que contenga los datos requeridos.

la instrucción individual sería algo así:

filt2003H8<-subset(bigframe,an==2003&sex=="H"&ed==8)

Podéis pensar que podría crearlos a mano, uno a uno pero tengo datos de 15 años y de edades entre 6 y 14 años.

Otra posibilidad sería simplemente filtrar los datos cada vez que necesitara hacer algún cálculo con algún grupo pero me parece poco práctico.

Lo ideal sería una función con un bucle que creara las matrices y las almacenara en memoria para poder utilizarlas en cualquier momento.

He intentado crear la siguiente función para que me dé la matriz que quiero de forma más rápida pero no la almacena en memoria las matrices

submat<-function(an,sx,ed){

  if(an==2002){prov<-eur2002}

 ...

  if(an==2016){prov<-eur2016}

  if(sx==0){vu<-subset(prov,prov$Sex=="M")}

  if(sx==1){vu<-subset(prov,prov$Sex=="H")}

  if(ed==6){fi<-subset(vu,vu$Edad>=6 & vu$Edad<=7)}

 ...

  if(ed==15){fi<-subset(vu,vu$Edad>=15 & vu$Edad<=16)}

  año<-prov

  año_sex<-vu

  año_sex_edad<-fi

}       

Muchas gracias por vuestra ayuda.


write.foreign, codefile.sps

de Raul Medina -

Hola a todos,

Tengo problemas para exportar  datos a un archivo de tipo de spss (.sav) desde R, usando la paqueteria "foreign".

Lo que hago es lo siguiente uso la función "write.foreign" con los siguientes argumentos:



write.foreign(data, datafile="PRUEBA.sav", codefile="codigo.sps", package="SPSS")

Todo hasta ahí está bien.

Obtengo dos archivos uno .sav (PRUEBA.sav) que tiene los datos y otro .sps (codigo.sps) que es una sintaxis de spss para agregar etiquetas los value labels y nombres a las variables.

Luego abro el archivo de datos (PRUEBA.sav) con ayuda del asistente para importación de texto de spss, separo el texto, especifico que el delimitador es la coma y asi tengo una base en spss.

El problema es que no sé como usar el archivo .sps, lo intento correr en spss pero me marca errores

EL CODIGO.sps comienza así:

SET DECIMAL=DOT.

DATA LIST FILE= "PRUEBA2.sav"  free (",")

ENCODING="Locale"

/ estatus (F8.0) con * start (F8.0) end (F8.0) edo 


pero me marca el siguiente error


DATA LIST SPSS Statistics no puede acceder a un archivo con la especificación de archivo determinada.  La especificación de archivo no es válida sintácticamente, especifica una unidad no válida, especificar un directorio protegido, especifica un archivo protegido o especifica un archivo no compartido. 


Ojala alguien que use estos archivos  me pueda ayudar a encontrar el error, porque necesito etiquetar la base y ponerle nombres a las variables y como son muchisimas variables no es eficiente hacerlo manualmente.


Saludos y gracias


Libreria R

de Hugo Abelenda -

Tengo la siguiente tabla con  una variable independiente “Datos” y una dependiente “Resultados”

Datos

Resultado

28

-2

28

-2

28

5

28

-2

28

-2

28

-2

28

-2

28

5

28

-2

28

5

28

-2

28

-2

28

-2

28

-2

28

-2

28

-2

28

-2

27

5

27

5

27

-2

27

5

27

5

27

5

27

5

27

5

27

-2

27

-2

27

-2

27

5

27

5

27

5

27

-2

26

5

26

-2

26

5

26

-2

26

-2

26

5

26

-2

25

-2

25

-2

25

-2

25

5

25

-2

25

5

24

-2

24

-2

24

-2

24

5

24

5

24

-2

24

5

24

5

23

-2

23

5

23

-2

23

-2

23

-2

23

-2

23

-2

23

-2

23

-2

22

-2

22

-2

22

5

22

-2

22

-2

22

-2

22

-2

22

-2

22

-2

22

-2

22

-2

 

De acuerdo a esa tabla, cuando “Datos” es >27, la suma de “Resultados” es -13. Para valores de “Datos” =<24 la suma de “Resultados” es -26. Con valores de “Datos” >=24 y <=27 la suma de resultados es 61, que es el resultado máximo que se puede lograr con la serie anterior.

Mi consulta es: ¿existe alguna librería en R que me permita realizar este análisis?, o sea, encontrar el rango de valores independientes que me permitan maximizar los resultados ligados a ellos.


Bucles en R

de Nerea Valcarcel -
Hola a todos,

estoy intentando escribir un programa para procesar los datos de un equipo que acabamos de comprar. Como no sabía programar en ningun lenguaje pero había dado un cursito de R me animé a hacerlo con él, pero soy muy novata y estoy bastante perdida. Hasta ahora he podido "apañarme" haciendo cosas básicas a través de R-commander y modificando el código según me interesaba. Ahora sin embargo he llegado a un punto en que no sé seguir. Tengo dos problemas:

- Una de las variables (llamemosla B) algunas veces aparece con NA por fallos del equipo. Yo necesito calcular una nueva variable (C) diviendo la variable A entre la variable B. El problema es que cuando la variable B tiene NA, la variable C también, claro está y yo necesito que C sea siempre mayor de 0. Lo que creía que tenía que hacer es algo del tipo "if then else" al crear la nueva variable, de tal forma que si B es positiva me haga el cálculo necesario y si no, tome el valor de la celda anterior. He hecho numerosos intentos y me imagino que no doy con la sintaxis adecuada, porque no he sido capaz de conseguirlo.

- Por otra parte, tengo una variable con la siguiente estructura:

Variable D

32869
291
327
401
186
33251
874
215

El equipo es un contador de partículas láser, y cada vez que la variable D toma un valor superior a 32768, esto indica que es una nueva partícula. Es decir, necesito que el programa identifique cada partícula y sume los valores de D hasta el siguiente valor mayor de 32768. Llevo toda la mañana leyendo manuales, foros y demás y no consigo dar con el método más adecuado. He pensado en for, while y luego he visto que muchas veces se pueden simplificar estos bucles con apply. En definitiva, no he conseguido usar ninguno de ellos y estoy más liada que al principio.

No sé si podrán ayudarme, pero lo agradezco de antemano.

Un saludo

Nerea

Problemas con la actualización de R

de Fernando Archuby -

Acabo de instalar la versión 3.5.1. Me encuentro imposibilitado de instalar paquetes o actualizar lo paquetes instalados debido a que la carpeta library aparece como no modificable. Desde propiedades de la carpeta intento arreglar eso pero luego el programa repite el error y la carpeta aparece nuevamente protegida.

¿Alguno tiene alguna solución?

Muchas gracias! (abajo pegué el texto del aviso de error)

Warning in install.packages(NULL, .libPaths()[1L], dependencies = NA, type = type) :
  'lib = "C:/Program Files/R/R-3.5.1/library"' is not writable