首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >事件日志表

事件日志表
EN

Stack Overflow用户
提问于 2013-04-10 23:23:23
回答 1查看 113关注 0票数 0

因此,我不确定在R中使用哪种表格函数来解决我的问题。基本上,我有一组数据(一个事件日志),以各种用户ids作为引用,然后为每个事件的每个用户提供特定的产品。我想创建一个表表(产品x产品),因为任何时候特定的用户已经购买了两个不同的产品,相应的表得到一个+1.即

代码语言:javascript
复制
user1  prod2
user2  prod1
user1  prod1

因此,基本上条目(prod1,prod2) =1(和(prod2,prod1) = 1,以及由于对称性).对角线要么是1的,要么是0的不是超级重要的.我可以为它编写一个循环,以便在数据中运行,但是如果已经有一个函数,我很想知道。

EN

回答 1

Stack Overflow用户

发布于 2013-04-11 00:19:23

读取数据;使用xtabs按产品(列)表将其转换为用户(行);将表的交叉积与其本身合并,并将超过1到1的任何元素减少:

代码语言:javascript
复制
# read in data
Lines <- "user1  prod2
user2  prod1
user1  prod1
user3  prod2
user4  prod3
user4  prod2
user5  prod4
"
DF <- read.table(text = Lines)

# compute required matrix
pmin(crossprod(xtabs(~., DF)), 1)

最后一行返回:

代码语言:javascript
复制
       V2
V2      prod1 prod2 prod3 prod4
  prod1     1     1     0     0
  prod2     1     1     1     0
  prod3     0     1     1     0
  prod4     0     0     0     1
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15938221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档