[问题] "==" operator问题

楼主: cb1040 (Absurde.Y)   2015-11-22 18:21:32
[问题类型]: 应该算程式咨询吧
[软件熟悉度]: 新手
[问题叙述]:
看一本书自学R,程式码很简单,见下方连结
其中遇到与 "==" operator有关的问题
此书范例中,叫读者用"%in%",不要用"==",因为
id==c("A","B")的意思等同id==rep(c("A","B"),times=6
但R help或网站大多只说明"==" 是 "exactly equal to"的意思
所以我不太了解为什么会是这个结果
(另外我也不懂为什么直接用id==rep(c(.........产生的警告讯息是什么意思,
希望能帮忙解答,感谢)
[程式范例]:
直接上连结
http://pastie.org/10573577
[环境叙述]:
R version 3.2.2 (2015-08-14)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.10.5 (Yosemite)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.2.2
[关键字]:r , == , operator, rep , %in%
作者: Edster (Edster)   2015-11-22 19:04:00
你应该要先看懂 "A" %in% rep(c("A", "B"), 6)与 "A" == rep(c("A", "B"), 6) 的差别前者是检查 "A" 是否在 rep(c("A", "B"), 6) 之中后者是检查"两个数列"各个元件是否相同.数列的各元要依照顺序依序比对. 不等长将自动补足.看不懂的话可以试试 c("B", "A") %in% rep(c("A", "B"),6)与 c("B","A") == rep(c("A", "B"), 6)
楼主: cb1040 (Absurde.Y)   2015-11-22 23:18:00
好,我先从这开始

Links booklink

Contact Us: admin [ a t ] ucptt.com