2017-12-03 186 views
1

我想创建一个嵌套的数据框,类似于在tidyr包中嵌套。但我还没有我的数据在data.frame,所以我不能简单df %>% group_by(thing) %>% nest()我有3个列表,对应于我试图把三个列汇集在一起​​。看下面的例子:从单独的列表创建一个嵌套的数据框

library(tidyverse) 

student = c('bob', 'jane', 'sam') 
avg_score = c(95, 99, 80) 
details = lapply(1:3, 
      function(x) data.frame(answer = sample(c(TRUE, FALSE),10, TRUE), 
            question_num = 1:10)) 

现在,这是我想要做什么:

my_data_frame = data.frame(student = student, 
          avg_score = avg_score, 
          details = details) 

但是,当然,这不会工作作为details不是原子公司的名单,而是data.frame列表秒。我也试过:

my_data_frame = data.frame(student = student, 
          avg_score = avg_score, 
          details = nest(details)) 
+0

你可以存储在'data.frame'使用'I'即'细节= I(信息)一个'list'列)' – akrun

回答

2

对于那些遇到类似问题的人。关键是要使用的tibble代替data.frame

library(tidyverse) 

student = c('bob', 'jane', 'sam') 
avg_score = c(95, 99, 80) 
details = lapply(1:3, function(x) data.frame(answer = sample(c(TRUE, FALSE), 10, TRUE), question_num = 1:10)) 

my_nested_data_frame = tibble(student = student, avg_score = avg_score, details = details)