명명된 문자 벡터를 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))
. 또는 열에 적합한 데이터 유형을 원하는 경우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
## Suggested by @JWilliman
tibble::enframe(testVect)
## # A tibble: 3 x 2
## name value
## <chr> <chr>
## 1 db_version 11.2.0.3.0
## 2 elapsed_time 12.89
## 3 cpu_time 12.71
## Suggested by @Joe
stack(testVect)
## values ind
## 1 11.2.0.3.0 db_version
## 2 12.89 elapsed_time
## 3 12.71 cpu_time
나는 이것을 시도할 것입니다.
test.vector <- as.data.frame(t(testVect))
class(test.vector)
나는 이 답변들에 제시된 기능을 사용하곤 했습니다 (as.list
,as_tibble
,t
,enframe
, (등) 하지만 그 이후로 그 사실을 알게 되었습니다.dplyr::bind_rows
이제는 한 번의 함수 호출로 원래 질문이 요청한 것을 정확하게 수행할 수 있습니다.
library(dplyr)
testVect <- structure(c("11.2.0.3.0", "12.89", "12.71"), .Names = c("db_version", "elapsed_time", "cpu_time"))
testVect %>% bind_rows
#> # A tibble: 1 x 3
#> db_version elapsed_time cpu_time
#> <chr> <chr> <chr>
#> 1 11.2.0.3.0 12.89 12.71
repex 패키지(v0.3.0)에서 2019-11-10년에 생성됨
tidyverse에서 보듯이 명명된 벡터를 data.frame/tibble로 변환하는 방법을 선호합니다.
named vector %>% as_tibble(.,rownames="column name of row.names")
다음은 다음을 사용한 예입니다.tibble
:
named_vector_df = tibble(name = names(named_vector), value = named_vector)
언급URL : https://stackoverflow.com/questions/16816032/convert-named-character-vector-to-data-frame
'programing' 카테고리의 다른 글
문자 간의 차이 *str="STRING"과 charstr[] = "STRING"? (0) | 2023.09.27 |
---|---|
관계형 데이터베이스에서 상속 모델링을 수행하는 방법은? (0) | 2023.09.27 |
MySQL에서 연결 시간대 변경 (0) | 2023.09.27 |
PowerShell v5 모듈에서 클래스를 내보내는 방법 (0) | 2023.09.27 |
6자리 고유 번호를 생성하려면 어떻게 해야 합니까? (0) | 2023.09.27 |