如何用向量名称作为级别的多个向量创建数据框?

时间:2019-05-04 13:48:38

标签: r dataframe

我有三个向量:

low = c(1,2,3)
med = c(3,5)
high = c(9)

我想创建一个像这样的数据框

value group
1     low
2     low
3     low
3     med
5     med
9     high

我试图创建一个像x=data.frame(low = low, med=med, high=high)这样的数据框(或因数),但它提供了三列。

2 个答案:

答案 0 :(得分:3)

一种选择是将它们转换为命名的list,然后转换为stack

stack(list(low = low, med = med, high = high))

#  values  ind
#1      1  low
#2      2  low
#3      3  low
#4      3  med
#5      5  med
#6      9 high

答案 1 :(得分:2)

这是tidyverse

的一个选项
library(tidyverse)
lst(low, med, high) %>%
    enframe %>% 
    unnest
# A tibble: 6 x 2
#  name  value
#  <chr> <dbl>
#1 low       1
#2 low       2
#3 low       3
#4 med       3
#5 med       5
#6 high      9