[R-es] names

Isidro Hidalgo Arellano ihidalgo en jccm.es
Jue Mar 30 13:58:45 CEST 2017


Ah, vale. Ya está. Puedes sacar los nombres con:

names(attr(datos$D4_Otros.1,"value.labels"))

 

Si te fijas en el str(datos$D4_Otros.1) el atributo "names" está como etiquetas de otro atributo, por eso no lo podías obtener directamente con:

attr(datos$D4_Otros.1,"names")

…ni con…

Names(datos$D4_Otros.1)

 

Si no te he entendido mal, puedes obtener lo que quieres, de la forma más rápida, montando un factor:

datosEtiquetados = factor(datos$D4_Otros.1, levels = attr(datos$D4_Otros.1,"value.labels"), labels = attr(attr(datos$D4_Otros.1,"value.labels"), "names"))

 

Un saludo

 

Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejería de Economía, Empresas y Empleo

http://www.castillalamancha.es/

 

 

De: Mauricio Monsalvo [mailto:m.monsalvo en gmail.com] 
Enviado el: jueves, 30 de marzo de 2017 11:47
Para: Isidro Hidalgo Arellano <ihidalgo en jccm.es>; r-help-es <r-help-es en r-project.org>
Asunto: Re: [R-es] names

 

Ahí va adjunto como rData.

 

El 29 de marzo de 2017, 9:45, Isidro Hidalgo Arellano <ihidalgo en jccm.es <mailto:ihidalgo en jccm.es> > escribió:

Quizá si seleccionas un trozo del data.frame y lo guardas como objeto en un rData…

 

De: Mauricio Monsalvo [mailto: <mailto:m.monsalvo en gmail.com> m.monsalvo en gmail.com] 
Enviado el: miércoles, 29 de marzo de 2017 13:17
Para: Isidro Hidalgo Arellano < <mailto:ihidalgo en jccm.es> ihidalgo en jccm.es>
CC: r-help-es < <mailto:r-help-es en r-project.org> r-help-es en r-project.org>
Asunto: Re: [R-es] names

 

Claro. Va. Pero sospecho que al darle

prueba <- datos[, .(D4_Otros.1, Region, B2a)]

write.csv2(prueba, "datos.csv")

va a perder esos atributos...

 

 

El 29 de marzo de 2017, 8:08, Isidro Hidalgo Arellano <ihidalgo en jccm.es> escribió:

Si pudieras enviar un trozo del data frame quizá te podríamos ayudar un poco mejor. A las malas, no utilices una secuencia de if.else, monta un data frame de 2 columnas con las 7 etiquetas y códigos y haz un merge, creo que es mucho más sencillo...
Un saludo

Isidro Hidalgo Arellano
Observatorio del Mercado de Trabajo
Consejería de Economía, Empresas y Empleo
http://www.castillalamancha.es/



-----Mensaje original-----
De: R-help-es [mailto:r-help-es-bounces en r-project.org <mailto:r-help-es-bounces en r-project.org> ] En nombre de Mauricio Monsalvo
Enviado el: miércoles, 29 de marzo de 2017 12:37
Para: r-help-es <r-help-es en r-project.org <mailto:r-help-es en r-project.org> >
Asunto: [R-es] names


Hola.
Tengo un set de datos importados desde SPSS (que usa etiquetas).- Mayormente, no tengo problemas, pero en una variable puntual veo que las etiquetas de las variables "están" pero la clase del vector no me cierra y los resultados no los usan. Trato de mostrarlo:
> na.omit(datos[, .(FORM, Region, Dependencia = B2a, Criterios =
D4_Otros.1)])
    FORM Region  Dependencia Criterios
 1:   44    NEA Provinciales         8
 2:   47    NEA Provinciales         8
 3:   51    NEA Provinciales         8
 4:   52    NEA Provinciales         8
 5:   58    NEA Provinciales         8
 6:  222    NOA  Municipales        11
 7:  231    NOA Provinciales        12
 8:  232    NOA   Religiosos        11
 9:  235    NOA Provinciales        12
10:  243    NOA  Municipales         8
11:  251    NOA     Privados        10
12:  441    NEA  Municipales        12
13:  450    NEA Provinciales         8
14:  493    NOA Provinciales        99
15:  530    NOA   Nacionales        14
16:  601    NOA   Religiosos         9
17:  656    NOA Comunitarios        13
18:  678    NEA Provinciales        15
19:  681    NEA Comunitarios        14
20:  683    NEA Comunitarios         8
> class(datos$D4_Otros.1)
[1] "numeric"
> str(datos$D4_Otros.1)
 atomic [1:311] NA NA NA NA NA NA NA NA NA NA ...
 - attr(*, "value.labels")= Named chr [1:7] "15" "14" "13" "12" ...
  ..- attr(*, "names")= chr [1:7] "hijos del personal del hospital"
"diagnostico hemato oncológico" "niños desnutridos o con riesgo" "hijos de empleados municipales" ...
> variable.names(datos$D4_Otros.1) # o bien names(datos$D4_Otros.1)
NULL
> attr(datos$D4_Otros.1, "names")
NULL
Probé algunas transformaciones pero la única forma de hacerlo que encontré es (volver a) asignarle ​etiquetas a esos factores. Algo como ifelse(1, "hijos del personal del hospital", etc.) ¿Cómo puedo recuperar esa información que muestra attr(*, names)? ¿Es posible? Creo que si R la ve, es porque está y el problema es que no sé utilizarla.
Muchas gracias.

--
Mauricio

        [[alternative HTML version deleted]]

_______________________________________________
R-help-es mailing list
R-help-es en r-project.org <mailto:R-help-es en r-project.org> 
https://stat.ethz.ch/mailman/listinfo/r-help-es







-- 

Mauricio







-- 

Mauricio


	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es