Saltar al contenido principal
LibreTexts Español

17.5: Manipulación de Datos en R

  • Page ID
    150208
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    R es una herramienta muy flexible para manipular datos en varios subconjuntos y formas. Hay muchos paquetes y funciones útiles para hacer esto, incluyendo el paquete dplyr, el paquete tidyr y más. R y sus paquetes permitirán a los usuarios transformar sus datos de formatos largos a anchos, eliminar valores NA, recodificar variables, etc. Para que los datos descargados sean más manejables para el libro, vamos a hacer dos cosas. Primero, queremos restringir nuestros datos a una ola. Los datos que descargamos representan muchas oleadas de una encuesta trimestral que se envía a un panel de residentes de Oklahoma sobre preferencias meteorológicas, climáticas y políticas. Este libro no incursionará en el análisis de datos de panel o en el análisis de series temporales, ya que es un texto introductorio, y por lo tanto simplemente queremos una sección transversal de datos para nuestro análisis. Esto se puede hacer con una línea de código:

    # ds<-subset(ds, ds$wave_id == "Wave 12 (Fall 2016)")

    Lo que esta línea de código está haciendo es crear un objeto, que de nuevo hemos llamado ds para sobrescribir nuestro antiguo objeto, que solo tiene la duodécimo ola de datos de la encuesta. En efecto, esto es eliminar todas las filas en las que waveid, la variable que indica la onda de levantamiento, no es igual a doce. A través de estas muchas olas, se hacen muchas preguntas diferentes y se recogen diversas variables. Ahora queremos eliminar todas las columnas o variables que no fueron recolectadas en la onda doce. Esto también se puede hacer con una línea de código:

    # ds<-ds[, !apply(is.na(ds), 2, all)]

    Esta línea de código es un poco más complicada, pero lo que esencialmente está haciendo es buscar primero en todos los ds valores NA usando la función is.na. Luego está devolviendo un valor lógico de VERDADERO o FALSO: si una celda tiene un NA, entonces el valor devuelto es VERDADERO y viceversa. Se busca entonces por columna, que está representada por el número 2 (las filas están representadas por el número 1), para ver si todos los valores son VERDADERO o FALSO. Esto luego devuelve un valor lógico para la columna, ya sea TRUE si todas las filas/celdas son NA o FALSE si al menos una fila/celda en la columna no es NA. El! es entonces revertir los significados VERDADERO y FALSO. Ahora TRUE significa una columna que no es todo NA y por lo tanto una que queremos mantener. Finalmente, los corchetes son otra forma de subdividir nuestro conjunto de datos. Esto nos permite mantener todas las columnas donde el valor devuelto es VERDADERO, o no todos los valores fueron NA. Debido a que nos preocupan las columnas, escribimos la función después de la coma. Si quisiéramos hacer algo similar pero con filas pondríamos la función antes de la coma. Por último, queremos guardar este conjunto de datos en nuestro directorio de trabajo el cual se explicará en la siguiente sección


    This page titled 17.5: Manipulación de Datos en R is shared under a CC BY 4.0 license and was authored, remixed, and/or curated by Jenkins-Smith et al. (University of Oklahoma Libraries) via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.