[問題] which與if運用

作者: huangsam (sam)   2016-12-01 16:03:29
[問題類型]:
程式諮詢(我想用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
選擇性,也許未來有用
作者: Edster (Edster)   2016-12-01 16:16:00
把一開始要取代的位置1,3,5 跟第2次要取代的位置2,4 都留下來。第二次是1,4 。如果存成list 你就用lappy(position_list, setdiff)好像也不能,再想一下
作者: cywhale (cywhale)   2016-12-01 16:42:00
idx <- intersect(which(is.na(DT)), new_idx)DT[idx] <- newdata[new_idx %in% idx]

Links booklink

Contact Us: admin [ a t ] ucptt.com