将命名的字符向量转换为data.frame
我有一个从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))
一样简单。 或者,如果你想为你的列显式数据types, data.frame(lapply(testVect, type.convert), stringsAsFactors=FALSE)
。
来自@MatthewPlourde和@JackRyan的答案是有效的,但是如果你有一个长命名向量,那么令人讨厌的是有一行和多列的数据框。 如果你宁愿有一个“关键”列和一个“值”列与许多行,这应该工作:
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
我要刺穿这个:
test.vector <- as.data.frame(t(testVect)) class(test.vector)