2013-05-29 34 views
43

我有一個名爲字符向量從xmlAttrs返回這樣的:轉換命名字符向量來data.frame

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 

回答

38

就像data.frame(as.list(testVect))一樣簡單。或者,如果你想爲你的列設置合理的數據類型,請撥打data.frame(lapply(testVect, type.convert), stringsAsFactors=FALSE)

9

我要採取刺在此:

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

從@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 
+0

悲傷,沒有一行 –