2013-05-29 21 views
43

Tôi đã một vector nhân vật tên là trở về từ xmlAttrs như thế này:Chuyển đổi tên nhân vật Vector để data.frame

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

Tôi muốn chuyển nó sang một khung dữ liệu mà trông như thế này:

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 

Trả lời

38

Nó đơn giản như data.frame(as.list(testVect)). Hoặc nếu bạn muốn các loại dữ liệu hợp lý cho các cột của mình, data.frame(lapply(testVect, type.convert), stringsAsFactors=FALSE).

9

tôi sẽ mất một đâm vào này:

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

Những câu trả lời từ @MatthewPlourde và làm việc @JackRyan, nhưng nếu bạn có một vector dài đặt tên nó là gây phiền nhiễu để có một khung dữ liệu với một hàng và nhiều cột. Nếu bạn muốn có cột "khóa" và cột "giá trị" có nhiều hàng, cột này sẽ hoạt động:

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

buồn vì không có một lớp lót –

Các vấn đề liên quan