楼主: fuyizhou
4507 5

[问答] r语言检索特定行在数据框的位置语句如何书写 [推广有奖]

  • 1关注
  • 0粉丝

高中生

2%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
153 点
帖子
25
精华
0
在线时间
9 小时
注册时间
2014-12-30
最后登录
2015-1-17

楼主
fuyizhou 发表于 2015-1-5 12:50:51 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
现有一数据框:
   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)
如何书写这样的语句 急求!!!
二维码

扫码加我 拉你入群

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

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

关键词:R语言 数据框 User item TEM 如何

沙发
yywan0913 在职认证  发表于 2015-1-5 15:13:10
  1. t=yourdata
  2. which(apply(t,1,function(x) all(x==c(2,107,4,102,2.5978300760))))
复制代码
已有 1 人评分经验 收起 理由
李会超 + 40 热心帮助其他会员

总评分: 经验 + 40   查看全部评分

藤椅
fuyizhou 发表于 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)

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

板凳
zngtian 发表于 2015-1-5 23:03:32
  1. x <- yourwholedata
  2. y <- subset(x, user == 2)
  3. pos <- with(y, which(item.x == 107 & val == 4 & item.y == 102 & pref == 2.5 & NA == 978300760))
复制代码
最后一句写的有点恶心,但是意思差不多。

报纸
fuyizhou 发表于 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中默认就算了一个,请问如何处理呢?

地板
fuyizhou 发表于 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

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 08:50