我有三个向量:
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)但它提供了三列。
一种选择是将它们转换为命名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
这是一个选项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