我有一个具有以下结构的数据框:

   language  subID sessionID                  rdm
      (chr) (fctr)    (fctr)                (chr)
1     Dutch  13602     13257 <data.frame [676,3]>
2     Dutch  13602    125354 <data.frame [676,3]>
3     Dutch  17790     19308 <data.frame [676,3]>
4     Dutch  37016     38221 <data.frame [676,3]>
5     Dutch  46830     47890 <data.frame [676,3]>

我想将此数据帧转换为676 * n x 6数据帧-换句话说,取数据帧的rdm列并将其扩展为更大的数据帧。

我希望能够执行以下操作:
bind_rows(data_frame$rdm,.id=c(data_frame$sessionID,data_frame$subID,data_frame$language))

但是,显然,“。id”属性不能那样工作。我如何获得我想要的数据帧?

最佳答案

我们可以使用unnest中的library(tidyr)

library(tidyr)
unnest(df1, rdm)
#  Source: local data frame [6 x 4]

#  language sessionID    V1    V2
#     (chr)     (dbl) (int) (int)
#1    Dutch     13257     1     2
#2    Dutch     13257     2     3
#3    Dutch     13257     3     4
#4    Dutch    125354     4     5
#5    Dutch    125354     5     6
#6    Dutch    125354     6     7

数据
library(dplyr)
df1 <- data_frame(language=c('Dutch', 'Dutch'), sessionID=c(13257, 125354),
  rdm= list(data.frame(V1=1:3, V2=2:4), data.frame(V1=4:6, V2=5:7)))

10-06 14:31