作者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/cn.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