gpt4 book ai didi

r - 计算按列值链接的项目对

转载 作者:行者123 更新时间:2023-12-04 19:14:00 24 4
gpt4 key购买 nike

我正在努力在 R 中解决这个问题。
我有这样的数据:

item   id
1 500
2 500
2 600
2 700
3 500
3 600

data.frame(item = c(1, 2, 2, 2, 3, 3),
id = c(500, 500, 600, 700, 500, 600))

我想计算一对项目链接到同一个 ID 的次数。
所以我想要这个输出:
item1    item2    count
1 2 1
2 3 2
1 3 2

我试过用以下命令来解决这个问题:
x_agg = aggregate(x, by=list(x$id), c)

进而
x_agg_id = lapply(x_agg$item, unique)

以为我可以计算每个项目的出现次数。但是 by函数似乎创建了一个列表对象,我不知道如何操作。我希望有一个更简单的方法......

最佳答案

# your data
df<-read.table(text="item id
1 500
2 500
2 600
2 700
3 500
3 600",header=TRUE)


library(tnet)
item_item<-projecting_tm(df, method="sum")
names(item_item)<-c("item1","item2","count")

item_item

#item1 item2 count
#1 1 2 1
#2 1 3 1
#3 2 1 1
#4 2 3 2
#5 3 1 1
#6 3 2 2

编辑

你有多少个 ID 和项目?你总是可以重命名的东西。例如
numberitems<-length(unique(df$id))+9000
items<-data.frame(item=unique(df$item),newitems=c(9000:(numberitems-1)))
numberids<-length(unique(df$id))+1000
ids<-data.frame(id=unique(df$id),newids=c(1000:(numberids-1)))
newdf<-merge(df,items,by="item")
newdf<-merge(newdf,ids,by="id")
DF<-data.frame(item=newdf$newitems,id=newdf$newids)

library(tnet)
item_item<-projecting_tm(DF, method="sum")
names(item_item)<-c("item1","item2","count")

然后合并回原来的名字....

关于r - 计算按列值链接的项目对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12072242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com