tidyverse
a lotを使用して、名前付きベクトルをdata.frame
/に変換しtibble
、列をベクトルの名前にするという課題に直面することがよくあります。
これを行うための好ましい/きちんとした方法は何ですか?
編集: これは関連しています: thisおよびthis github-issue
だから私は欲しい:
require(tidyverse)
vec <- c("a" = 1, "b" = 2)
これになる:
# A tibble: 1 × 2
a b
<dbl> <dbl>
1 1 2
たとえば、次の方法でこれを行うことができます:
vec %>% enframe %>% spread(name, value)
vec %>% t %>% as_tibble
ユースケースの例:
require(tidyverse)
require(rvest)
txt <- c('<node a="1" b="2"></node>',
'<node a="1" c="3"></node>')
txt %>% map(read_xml) %>% map(xml_attrs) %>% map_df(~t(.) %>% as_tibble)
どちらが与える
# A tibble: 2 × 3
a b c
<chr> <chr> <chr>
1 1 2 <NA>
2 1 <NA> 3