我有三个向量:
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)
这样的数据框(或因数),但它提供了三列。
答案 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