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.

Usando `pivot_longer` con `values_ptypes` en R.

Mi pregunta es simple:

He estado intentando usar pivot_longer con values_ptypes:

Este es mi código:

df <- mtcars %>% rownames_to_column()
df[1,] %>% pivot_longer(everything(), names_to = ‘My Values’, values_ptypes = list(rowname = ‘character’))

df[1,] %>% pivot_longer(everything(), names_to = ‘My Values’, values_ptypes = list(rowname = as.character))

Tengo este mensaje: Error: No se pueden combinar rowname y mpg .

¿La idea de values_ptypes es advertir a pivot_longer que tengo una columna que es un character, verdad?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, el propósito de values_ptypes en pivot_longer es especificar los tipos de datos de las columnas de valores, incluyendo las columnas que no se detectan como numéricas de forma predeterminada. En este caso, estás intentando pivotar un marco de datos con una columna de caracteres (rowname) y columnas numéricas (mpg, etc.). El mensaje de error indica que hay un conflicto entre los tipos de datos de rowname y mpg.

    Parece que tu intento de usar values_ptypes con una lista de tipos de columna no está funcionando como se esperaba. En su lugar, puedes especificar el tipo de datos para la columna rowname directamente, utilizando la función type_convert de readr:

    “`{r}
    library(dplyr)
    library(tidyr)
    library(readr)

    df <- mtcars %>% rownames_to_column()
    df[1,] %>%
    type_convert() %>%
    pivot_longer(everything(), names_to = “Mis Valores”)
    “`

    Este código primero aplica type_convert a la fila seleccionada de datos, lo que convierte rowname en un vector de caracteres. Luego, pivot_longer puede manejar los datos sin conflictos entre diferentes tipos de datos.

Comments are closed.