1

我有三个向量:

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)但它提供了三列。

4

2 回答 2

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
于 2019-05-04T13:54:39.857 回答
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
于 2019-05-04T14:46:12.953 回答