[问题] 把资料某栏 大于1 小于0的 令为NA

楼主: tony1331 (BLUE)   2017-11-06 15:50:07
问题:
把资料某栏 大于1 小于0的 令为NA
http://i.imgur.com/c3zBtv3.jpg
http://i.imgur.com/URDExKW.jpg
请问大家这跑出来是什么问题?
谢谢~
作者: andrew43 (讨厌有好心推文后删文者)   2017-11-06 15:56:00
which那串用意是?另外which是问它哪“些”符合,而你只拿一个东西问它好像没什么意义吧
楼主: tony1331 (BLUE)   2017-11-06 16:41:00
没打which那个 也跑不出来因为礼拜有NA他好像不能判断
作者: jyung (malayung)   2017-11-06 17:14:00
你的 error mesagge 是which那段造成的,没有新的 error message 看不出为什么跑不出
作者: ixjnkeewnoxx (Zapdos)   2017-11-06 17:18:00
应该是if中判断式要是logical值,而which()回传的值不是TRUE or FALSE 所以程式抛Error给你
作者: clsmbstu   2017-11-06 17:33:00
楼上说的有可能which那边留is.na(A3[x,55])应该就可以了 ==TRUE不需要which也一样不需要另外你也可以不用写for loop,R可以对一串值同时做逻辑运算ToBeNA <- A3[,55] < 0 | A3[,55] > 1 | is.na(A3[,55])A3[,55][ToBeNA] <- NA
作者: andrew43 (讨厌有好心推文后删文者)   2017-11-06 18:49:00
which那串应该是回传了空向量才出现这个error。我只是要小小补充 c(1,2,3,3.14) == T 的表示式是合法的
作者: clansoda (小笨)   2017-11-06 19:24:00
我是想问 ifelse难道不是更好的选择吗?
作者: andrew43 (讨厌有好心推文后删文者)   2017-11-06 19:36:00
向量化自然是更好的方法。
作者: clsmbstu   2017-11-06 20:21:00
刚刚试了一下andrew大的说法,可以重现错误,感谢!也谢谢clansoda的ifelse
作者: clansoda (小笨)   2017-11-06 20:36:00
if写太长会有点想吐XDD
楼主: tony1331 (BLUE)   2017-11-07 11:32:00
感谢大家解答 我再试试
作者: celestialgod (天)   2017-11-13 23:02:00

Links booklink

Contact Us: admin [ a t ] ucptt.com