[問題] []裡面放邏輯矩陣也可以嗎?

看板R_Language作者 (metalheads)時間8年前 (2017/10/09 13:35), 編輯推噓3(3013)
留言16則, 4人參與, 8年前最新討論串1/2 (看更多)
小弟最近想把資料(data frame)裡面的na值用0取代 查一查發現 data[is.na(data)]<-0就可以解決 但是有點想不透為什麼這樣子就可以指定到那些na的值 is.na(data)出來是一個矩陣 所以[]放矩陣也可以嗎? 規則是如何呢? 感謝各位大神 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.218.92.245 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1507527339.A.9F8.html

10/09 17:07, 8年前 , 1F
[]裡面放矩陣?什麼意思有點不懂
10/09 17:07, 1F

10/09 18:28, 8年前 , 2F
R語言裡data frame跟matrix是不一樣的喔 感覺你有點混淆
10/09 18:28, 2F

10/09 18:31, 8年前 , 3F
[]裡面可以放邏輯值 data[is.na(data)]就挑出data裡是NA
10/09 18:31, 3F

10/09 18:32, 8年前 , 4F
的那些(就是一群NA值) 再加上<-0就把這些NA都換成0了
10/09 18:32, 4F

10/09 18:33, 8年前 , 5F
還是很難理解的話試試 x <- 1:10; x[x > 5] <- -50
10/09 18:33, 5F

10/09 18:44, 8年前 , 6F
[] 裡如果放邏輯矩陣的話,它就依矩陣逐行逐個判斷,
10/09 18:44, 6F

10/09 18:44, 8年前 , 7F
只是is.na 出來的東西跟原 data 一樣size,因此對應
10/09 18:44, 7F

10/09 18:44, 8年前 , 8F
到原本資料中 NA 的位置
10/09 18:44, 8F

10/09 21:34, 8年前 , 9F
請無視我在二樓的那句 我自己眼殘 orz
10/09 21:34, 9F

10/11 16:34, 8年前 , 10F
內部的規則是:以一維向量的索引來對應。
10/11 16:34, 10F

10/11 16:35, 8年前 , 11F
雖然data frame和matrix看起來都是二維的,但在內部還是
10/11 16:35, 11F

10/11 16:35, 8年前 , 12F
可以視為各cell以先欄後列的一維方向排列而成。
10/11 16:35, 12F

10/11 16:49, 8年前 , 13F
不過你也可以不用在意到這麼細,就先把資料框和矩陣的索
10/11 16:49, 13F

10/11 16:50, 8年前 , 14F
引規則是共享的,理解成這樣就不會出錯了。
10/11 16:50, 14F

10/11 16:53, 8年前 , 15F
更正:先列後欄,不是先欄後列
10/11 16:53, 15F

10/11 16:54, 8年前 , 16F
再更正,先欄後列沒錯。今天開退燒腦殘很嚴重。
10/11 16:54, 16F
文章代碼(AID): #1Psmghdu (R_Language)
文章代碼(AID): #1Psmghdu (R_Language)