variable type factor data convert column change r dataframe vector type-conversion

factor - r data type



Convertir el vector de caracteres con nombre a data.frame (3)

Es tan simple como data.frame(as.list(testVect)) . O si desea tipos de datos sensibles para sus columnas, data.frame(lapply(testVect, type.convert), stringsAsFactors=FALSE) .

Tengo un vector de caracteres con nombre devuelto desde xmlAttrs como este:

testVect <- structure(c("11.2.0.3.0", "12.89", "12.71"), .Names = c("db_version", "elapsed_time", "cpu_time"))

Me gustaría convertirlo en un marco de datos que se vea así:

testDF <- data.frame("db_version"="11.2.0.3.0","elapsed_time"=12.89,"cpu_time"=12.71) head(testDF) db_version elapsed_time cpu_time 1 11.2.0.3.0 12.89 12.71


Las respuestas de @MatthewPlourde y @JackRyan funcionan, pero si tiene un vector de nombre largo, es molesto tener un marco de datos con una fila y muchas columnas. Si prefieres tener una columna de "clave" y una columna de "valor" con muchas filas, cualquiera de los siguientes debería funcionar:

data.frame(keyName=names(testVect), value=testVect, row.names=NULL) ## keyName value ## 1 db_version 11.2.0.3.0 ## 2 elapsed_time 12.89 ## 3 cpu_time 12.71 ## Suggested by @JWilliman tibble::enframe(testVect) ## # A tibble: 3 x 2 ## name value ## <chr> <chr> ## 1 db_version 11.2.0.3.0 ## 2 elapsed_time 12.89 ## 3 cpu_time 12.71 ## Suggested by @Joe stack(testVect) ## values ind ## 1 11.2.0.3.0 db_version ## 2 12.89 elapsed_time ## 3 12.71 cpu_time


Voy a probar esto:

test.vector <- as.data.frame(t(testVect)) class(test.vector)