扩展数据框内的数据帧

时间:2015-10-05 20:08:46

标签: r dplyr

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

   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×6的数据帧 - 换句话说,取数据帧的rdm列并将其扩展到更大的数据帧。

喜欢能够做类似的事情:

bind_rows(data_frame$rdm,.id=c(data_frame$sessionID,data_frame$subID,data_frame$language))

但是,显然,“。id”属性不起作用。我如何获得我追求的数据框?

1 个答案:

答案 0 :(得分:5)

我们可以使用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)))