J'ai un vecteur de caractère nommé renvoyé de xmlAttrs comme ceci:
testVect <- structure(c("11.2.0.3.0", "12.89", "12.71"), .Names = c("db_version",
"elapsed_time", "cpu_time"))
Je voudrais le convertir en un cadre de données qui ressemble à ceci:
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
C'est aussi simple que data.frame(as.list(testVect))
. Ou si vous voulez des types de données sensibles pour vos colonnes, data.frame(lapply(testVect, type.convert), stringsAsFactors=FALSE)
.
Les réponses de @MatthewPlourde et de @JackRyan fonctionnent, mais si vous avez un long vecteur nommé, il est gênant de disposer d'un bloc de données avec une ligne et plusieurs colonnes. Si vous préférez une colonne "clé" et une colonne "valeur" comportant de nombreuses lignes, l'une des solutions suivantes devrait fonctionner:
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
Je vais essayer de répondre à ceci:
test.vector <- as.data.frame(t(testVect))
class(test.vector)