このようなxmlAttrsから返される名前付き文字ベクトルがあります。
testVect <- structure(c("11.2.0.3.0", "12.89", "12.71"), .Names = c("db_version",
"elapsed_time", "cpu_time"))
これを次のようなデータフレームに変換したいと思います。
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
data.frame(as.list(testVect))
と同じくらい簡単です。または、列に適切なデータ型が必要な場合は、data.frame(lapply(testVect, type.convert), stringsAsFactors=FALSE)
。
@MatthewPlourdeと@JackRyanからの回答は機能しますが、長い名前のベクターがある場合、1行と多くの列を持つデータフレームがあるのは面倒です。 「キー」列と「値」列に多数の行がある場合は、次のいずれかが機能します。
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
私はこれに突き刺すつもりです:
test.vector <- as.data.frame(t(testVect))
class(test.vector)