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.

Pivotar los datos para que se encuentren en una única fila en R

Aquí está el código de muestra que estoy utilizando

library(dplyr)

naics <- c("000000","000000",123000,123000)
year <- c(2020,2021,2020,2021)
January <- c(250,251,6,9)
February <- c(252,253,7,16)
March <- c(254,255,8,20)

sample2 <- data.frame(naics, year, January, February, March)

Aquí está el resultado esperado

                Jan2020        Feb2020    March2020      Jan2021        Feb2021   March2021   
 000000            250             252          254          251            253           255
 123000             6                7           8            9              16            20

¿Es esto algo que se hace con pivot_wider o es más complejo?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, esta es una tarea que se puede lograr con la función pivot_wider del paquete tidyr. Se puede hacer de la siguiente manera:

    sample2 %>%
      pivot_wider(names_from = year, values_from = c(January, February, March), 
                  names_glue = "{.value}{year}") %>%
      select(-naics_2021)
    

    El argumento names_from especifica la(s) variable(s) cuyos valores se utilizarán para crear los nuevos nombres de columna, mientras que el argumento values_from especifica la(s) variable(s) cuyos valores se utilizarán para llenar las nuevas columnas. El argumento names_glue se utiliza para especificar el formato utilizado para crear los nuevos nombres de columna. Por último, la función select se utiliza para eliminar la columna redundante naics_2021.

Comments are closed.