Преобразование именованного символьного вектора в данные.рамка


у меня есть именованный вектор символов, возвращаемый из 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
3 53

3 ответа:

Это просто data.frame(as.list(testVect)). Или если вам нужны разумные типы данных для ваших столбцов,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)