Ответ 1
Это так же просто, как data.frame(as.list(testVect))
. Или, если вам нужны разумные типы данных для ваших столбцов, data.frame(lapply(testVect, type.convert), stringsAsFactors=FALSE)
.
У меня есть именованный символьный вектор, возвращаемый из 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 работают, но если у вас длинный именованный вектор, это раздражает наличие кадра данных с одной строкой и многими столбцами. Если вы предпочитаете столбец "ключ" и столбец "значение" со многими строками, это должно работать:
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)