[問題] "==" 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