[心得] bootstrap long format

作者: memphis (讓你喜歡這世界~)   2017-05-23 15:04:31
假設資料長這樣
ID V1 V2
1 10 11
1 11 12
1 12 13
2 13 14
2 14 15
2 15 16
3 16 17
3 17 18
4 18 19
4 19 20
先bootstrap ID
s <- sample(unique(data$ID), replace=T)
再抓資料
data2 <- data[data$ID %in% s] #這樣就錯了
#s裡是有重複的ID沒錯
#可是 %in% 不會抓重複的值
網路上查尋的的結果,是用grr:::matches
s_idx <- as.numeric(unlist(matches(s, data$ID, list=T)))
data2 <- data[s_idx]
看起來還算簡約, 只是為了一個小功能又要裝一個pkg..有點煩躁
作者: cywhale (cywhale)   2017-05-23 15:25:00
先給一欄row_id再bootstrap再取回真正ID和值,這樣不行嗎
作者: a78998042a (Benjimine)   2017-05-23 19:47:00
s_idx = unlist(lapply(as.list(s),function(x)which(data$ID%in%x)))
作者: memphis (讓你喜歡這世界~)   2017-05-23 21:42:00
@cywhale:沒看懂你說的是什麼~ 我要的是如果ID2被sample2次..那再重購資料的時候, 整套ID2都要重複兩次@a78998042a: 看起來好像是對的XD, 也就是loop一遍清單把符合某一ID的那些row蒐集起來
作者: bmka (偶素米蟲)   2017-05-24 10:51:00
記得要把bootstrap sample的id換掉啊,不然一設cluster就錯了
作者: memphis (讓你喜歡這世界~)   2017-05-24 13:07:00
恩恩, 這個例子我沒有需要下cluster by id, 要的話只好多一層功夫處理ID

Links booklink

Contact Us: admin [ a t ] ucptt.com