作者memphis (讓你喜歡這世界~)
看板R_Language
標題[心得] bootstrap long format
時間Tue May 23 15:04:31 2017
假設資料長這樣
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..有點煩躁
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.73.105
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1495523074.A.34C.html
1F:→ cywhale: 先給一欄row_id再bootstrap再取回真正ID和值,這樣不行嗎 05/23 15:25
2F:→ a78998042a: s_idx = unlist(lapply(as.list(s),function(x) 05/23 19:47
3F:→ a78998042a: which(data$ID%in%x))) 05/23 19:47
4F:→ memphis: @cywhale:沒看懂你說的是什麼~ 我要的是如果ID2被sample 05/23 21:42
5F:→ memphis: 2次..那再重購資料的時候, 整套ID2都要重複兩次 05/23 21:42
6F:→ memphis: @a78998042a: 看起來好像是對的XD, 也就是loop一遍清單 05/23 21:44
7F:→ memphis: 把符合某一ID的那些row蒐集起來 05/23 21:44
8F:→ bmka: 記得要把bootstrap sample的id換掉啊,不然一設cluster就錯了 05/24 10:51
9F:→ memphis: 恩恩, 這個例子我沒有需要下cluster by id, 要的話只好 05/24 13:07
10F:→ memphis: 多一層功夫處理ID 05/24 13:09