看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 請把以下不需要的部份刪除 使用者(已經有用R 做過不少作品) [問題敘述]: 請簡略描述你所要做的事情,或是這個程式的目的 目前有個DATA 想要判斷在某個列是否被取代過如果沒有被取代過就換新的 舉例 DATA 欄位1 NA NA NA NA NA NA NA NA 好比說我前面有先跑程式發現我想取代1,3,5列 那我就先判斷是否為NA若是NA則改寫成A 改寫如下 A NA A NA A NA . . . 接下來我會再判斷要被替換的列為1,4,改寫成B 因為第一列被改寫則為但是第四列沒有則指會改寫第四列 A NA A B A NA . . . 想問有沒有更快速的方法因為有時候資料量大的時候會跑比較久 [程式範例]: for(j in which(ind==1)) { DT[j] <- ifelse(DT[j]==0, 要被取代的值,DT[i] ) } [環境敘述]: [關鍵字]: which , for ,ifelse 選擇性,也許未來有用 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.51.170.56 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1480579411.A.B69.html
Edster: 把一開始要取代的位置1,3,5 跟第2次要取代的位置2,4 都留 12/01 16:16
Edster: 下來。 12/01 16:16
Edster: 第二次是1,4 。 12/01 16:17
Edster: 如果存成list 你就用lappy(position_list, setdiff) 12/01 16:19
Edster: 好像也不能,再想一下 12/01 16:19
cywhale: idx <- intersect(which(is.na(DT)), new_idx) 12/01 16:42
cywhale: DT[idx] <- newdata[new_idx %in% idx] 12/01 16:43