我有一个具有以下结构的数据框:
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)))