根据R中的数据框内容构建索引表

时间:2014-03-31 06:55:41

标签: r data-binding

我有一个数据框A,格式如下:

user item
101    1  
101    2  
101    4  
102    2  
103    3
103    4
...    ...

我想创建2个数据框B和C

user itemList
101   c(1,2,4)  
102   c(2)
103   c(3,4)


item  userList
1     c(101)
2     c(101,102)
3     c(103)
4     c(101,103)

1 个答案:

答案 0 :(得分:1)

您可以将dplyr包用于此

library(dplyr)

user.grp <- df %.%
  group_by(user) %.%
  summarise(itemList=paste(item,collapse=','))

#output
user.grp
#  user itemList
#1  101    1,2,4
#2  102        2
#3  103      3,4

类似地,您可以将group_by中的项目用于按项目分组。

如果要求将分组数据作为数字向量,那么我们需要将整个数据存储在列表中。

library(plyr)
dlply(df,.(user),function(df){df$item})

#output
#$`101`
#[1] 1 2 4

#$`102`
#[1] 2

#$`103`
#[1] 3 4