[心得] 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