[問題] 把資料某欄 大於1 小於0的 令為NA

看板R_Language作者 (BLUE)時間6年前 (2017/11/06 15:50), 編輯推噓3(3022)
留言25則, 7人參與, 6年前最新討論串1/1
問題: 把資料某欄 大於1 小於0的 令為NA http://i.imgur.com/c3zBtv3.jpg
http://i.imgur.com/URDExKW.jpg
請問大家這跑出來是什麼問題? 謝謝~ ----- Sent from JPTT on my Asus ASUS_Z012DA. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.76.57.214 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1509954610.A.457.html

11/06 15:56, 6年前 , 1F
which那串用意是?
11/06 15:56, 1F

11/06 15:56, 6年前 , 2F
另外which是問它哪「些」符合,而你只拿一個東西問它
11/06 15:56, 2F

11/06 15:57, 6年前 , 3F
好像沒什麼意義吧
11/06 15:57, 3F

11/06 16:41, 6年前 , 4F
沒打which那個 也跑不出來
11/06 16:41, 4F

11/06 16:43, 6年前 , 5F
因為禮拜有NA他好像不能判斷
11/06 16:43, 5F

11/06 17:14, 6年前 , 6F
你的 error mesagge 是which那段造成的,沒有新的 error me
11/06 17:14, 6F

11/06 17:14, 6年前 , 7F
ssage 看不出為什麼跑不出
11/06 17:14, 7F

11/06 17:18, 6年前 , 8F
應該是if中判斷式要是logical值,而which()回傳的
11/06 17:18, 8F

11/06 17:18, 6年前 , 9F
值不是TRUE or FALSE 所以程式拋Error給你
11/06 17:18, 9F

11/06 17:33, 6年前 , 10F
樓上說的有可能
11/06 17:33, 10F

11/06 17:39, 6年前 , 11F
which那邊留is.na(A3[x,55])應該就可以了 ==TRUE不需要
11/06 17:39, 11F

11/06 17:39, 6年前 , 12F
which也一樣不需要
11/06 17:39, 12F

11/06 17:43, 6年前 , 13F
另外你也可以不用寫for loop,R可以對一串值同時做邏輯
11/06 17:43, 13F

11/06 17:43, 6年前 , 14F
運算
11/06 17:43, 14F

11/06 17:47, 6年前 , 15F
ToBeNA <- A3[,55] < 0 | A3[,55] > 1 | is.na(A3[,55])
11/06 17:47, 15F

11/06 17:47, 6年前 , 16F
A3[,55][ToBeNA] <- NA
11/06 17:47, 16F

11/06 18:49, 6年前 , 17F
which那串應該是回傳了空向量才出現這個error。
11/06 18:49, 17F

11/06 18:53, 6年前 , 18F
我只是要小小補充 c(1,2,3,3.14) == T 的表示式是合法的
11/06 18:53, 18F

11/06 19:24, 6年前 , 19F
我是想問 ifelse難道不是更好的選擇嗎?
11/06 19:24, 19F

11/06 19:36, 6年前 , 20F
向量化自然是更好的方法。
11/06 19:36, 20F

11/06 20:21, 6年前 , 21F
剛剛試了一下andrew大的說法,可以重現錯誤,感謝!
11/06 20:21, 21F

11/06 20:23, 6年前 , 22F
也謝謝clansoda的ifelse
11/06 20:23, 22F

11/06 20:36, 6年前 , 23F
if寫太長會有點想吐XDD
11/06 20:36, 23F

11/07 11:32, 6年前 , 24F
感謝大家解答 我再試試
11/07 11:32, 24F

11/13 23:02, 6年前 , 25F
11/13 23:02, 25F
文章代碼(AID): #1Q01GoHN (R_Language)