我自己來回我自己的問題 我採用的解法是andrew大的解法
C版的解法看起來應該是最快的 但是小弟無法理解在幹嘛
所以選擇了一個看起來比我的快很多又能理解的方法
kk <- Sys.time()
klist <- lapply(1 : NROW(target), function(k){
target[k,] %>% as.numeric %>% .[!is.na(.)]
})
test <- lapply(klist, function(k) {
m <- logical(20)
m[k] <- TRUE
return(m)
}) %>% do.call(rbind, .)
Sys.time() - kk
Time difference of 53.88025 secs
我稍微修正過andrew大在提取每個row裡的值成為list的這一段碼
這樣可以將速度從180幾秒提到50秒左右
以我目前這個50萬row的資料等級來說這個速度我個人可以接受了
等到C大提點他的程式碼的邏輯以後可能會再修改我的寫法
目前先到這樣 感謝各位先進的提供的作法 受益良多