如何在R中将向量列表和标签向量合并为数据表

时间:2019-09-18 19:53:22

标签: r data.table

向量列表的长度和label的向量应该相同。以length == 3为例:

n <- list(c(1,2),c(6,7,8),c(10))
cat <- c("c1", "c2", "c3")

我想用这种形式制作数据表:

n      cat
1      c1
2      c1
6      c2
7      c2
8      c2
10     c3

1 个答案:

答案 0 :(得分:1)

在将stack的名称设置为'cat'list

之后,选项为vector

out <- stack(setNames(n, cat))
names(out) <- c("n", "cat")
out
#   n cat
#1  1  c1
#2  2  c1
#3  6  c2
#4  7  c2
#5  8  c2
#6 10  c3

tidyverse中,可以使用enframe

library(tibble)
library(dplyr)
library(tidyr)
n %>%
  set_names(cat) %>%
  enframe(name = 'cat', value = 'n') %>%
  unnest(n)