全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4438 5
2015-01-05
现有一数据框:
   user item.x val item.y pref        NA
1     2    102  16    102  2.5 978300760
2     2    106  14    102  2.5 978300760
3     2    105  13    102  2.5 978300760
4     2    107   4    102  2.5 978300760
5     4    102  10    101  5.0 978300760
6     4    102  10    104  4.5 978300760
7     4    104  10    101  5.0 978300760
8     4    104  10    104  4.5 978300760
9     4    105   7    101  5.0 978300760
10    4    105   7    104  4.5 978300760
11    4    101  13    101  5.0 978300760
12    4    101  13    104  4.5 978300760
如何检索 2    107   4    102  2.5 978300760  在user=2的位置(即4)
如何书写这样的语句 急求!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-1-5 15:13:10
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-5 16:03:39
yywan0913 发表于 2015-1-5 15:13
> recommendation
   user item  val
1     1  104 30.5
2     1  105 12.5
3     1  106  7.5
4     2  105 13.0
5     2  106  9.0
6     3  103 24.5
7     3  106 10.5
8     3  102  8.0
9     4  105 22.0
10    4  102 20.5
11    4  106 12.5
12    5  102 16.0
> testing
   user item pref
11    3  107    5
15    4  106    4
17    5  102    3
如何书写testing比如4 106这一项recommendation中user=4的排序
(答案是3)

实在新手,求助,感激不尽!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-5 23:03:32
复制代码
最后一句写的有点恶心,但是意思差不多。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-6 16:52:04
zngtian 发表于 2015-1-5 23:03
最后一句写的有点恶心,但是意思差不多。
我的程序中有这一句话:
each_xulie=sapply(unique(m[,1]),function(x) sum(with(subset(recommendation[user==x,]),which(item==(subset(m,m[,1]==x&m[,2]==m[,4])$item.x))))/sum(recommendation[,1]==x))
然后有时候(subset(recommendation[user==x,]),which(item==(subset(m,m[,1]==x&m[,2]==m[,4])$item.x))中的后面item的值可能有两个或者更多,这样r中默认就算了一个,请问如何处理呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-6 18:04:10
yywan0913 发表于 2015-1-5 15:13
不对 大神 又有问题了

b<-subset(m,m[,1]==1&m[,2]==m[,4])$item.x

b

with(subset(recommendation[user==1,]),which(item==102))

with(subset(recommendation[user==1,]),which(b%in%item))


> b<-subset(m,m[,1]==1&m[,2]==m[,4])$item.x
> b
[1] 101 102
> with(subset(recommendation[user==1,]),which(item==102))
[1] 3
> with(subset(recommendation[user==1,]),which(b%in%item))
[1] 1 2

应该输出1和3呀怎么是2
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群