全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2551 8
2018-11-24
这种语法可能不符合R的规则,但是为何一个可以成功筛选出,另一个则不行?有人对这方面有研究的?发表一下看法
下面内容为试验时的两个例子:
> cc
  ccc bb lulu
1   a  1    8
2   b  2    9
3   c  3   10
> list(c('b','c'))
[[1]]
[1] "b" "c"

> cc[cc[1]==list(c('b','c')),]
[1] ccc  bb   lulu                -------------此句输出仅输出列名
<0 行> (或0-长度的row.names)
Warning messages:
1: In is.na(e1) | is.na(e2) :
  longer object length is not a multiple of shorter object length
2: In `==.default`(left, right) :
  longer object length is not a multiple of shorter object length


> rs[2]
[[1]]
[1] "37917" "25405"

> dcaptb2[dcaptb2[1]==rs[2],] #--虽然后面有提醒,但还是顺利输出
    会员ID 冻肉 罐装肉 罐装蔬菜 牛奶 啤酒 葡萄酒 蔬菜水果 甜食 鲜肉 饮料 鱼
244  25405    0      1        0    0    0      0        0    0    0    0  2
369  37917    0      0        0    0    0      2        1    1    2    0  0
Warning message:
In FUN(left, right) :
  longer object length is not a multiple of shorter object length



二维码

扫码加我 拉你入群

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

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

全部回复
2018-11-24 15:02:46
标准写法应该是 with(dcaptb2,dcaptb2[会员ID=="37917"|会员ID=="25405",])# 标准写法,但上面的
dcaptb2[dcaptb2[1]==rs[2],]却行得通,不解!
二维码

扫码加我 拉你入群

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

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

2018-11-24 15:44:53
你给的信息还不是很全,我感觉你第二个例子好像不是data.frame。另外,像多值筛选一般用%in%吧
二维码

扫码加我 拉你入群

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

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

2018-11-24 16:17:11
Whig 发表于 2018-11-24 15:44
你给的信息还不是很全,我感觉你第二个例子好像不是data.frame。另外,像多值筛选一般用%in%吧
str(dcaptb2)
'data.frame':        939 obs. of  12 variables:
$ 会员ID  : chr  "100047" "100255" "100256" "100328" ...
$ 冻肉    : num  0 0 1 1 0 0 1 1 1 1 ...
$ 罐装肉  : num  0 0 0 0 0 0 0 1 0 0 ...
$ 罐装蔬菜: num  1 0 1 1 1 1 1 1 1 1 ...
$ 牛奶    : num  0 0 0 0 0 0 0 0 0 0 ...
$ 啤酒    : num  0 0 1 1 0 0 0 1 1 1 ...
$ 葡萄酒  : num  0 1 1 0 0 1 0 0 0 1 ...
$ 蔬菜水果: num  1 0 0 0 1 1 1 0 0 0 ...
$ 甜食    : num  0 0 0 0 1 0 0 0 0 0 ...
$ 鲜肉    : num  0 0 0 1 0 0 0 0 0 0 ...
$ 饮料    : num  0 0 0 0 0 1 0 0 0 0 ...
$ 鱼      : num  1 0 0 1 1 0 1 0 0 0 ...
二维码

扫码加我 拉你入群

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

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

2018-11-24 16:44:04
我试了下,这样做有问题,当数据类型不一样,得到的结果似乎也不一样,而且我的没报错报警告。建议不要这么做
二维码

扫码加我 拉你入群

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

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

2018-11-25 10:44:53
字符型建议不用==,可以试试:%in%。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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