我想为数据表中的每个因子选择前几行。如何为数据表中的每个因子选择n个第一行?
SOURCE=data.table(NAME=rep(paste0("NAME", as.character(1:3)), each=5), VALUE=sample(c(TRUE,FALSE), 5*3, TRUE))
> SOURCE
NAME VALUE
1: NAME1 TRUE
2: NAME1 TRUE
3: NAME1 TRUE
4: NAME1 FALSE
5: NAME1 FALSE
6: NAME2 TRUE
7: NAME2 FALSE
8: NAME2 TRUE
9: NAME2 TRUE
10: NAME2 TRUE
11: NAME3 TRUE
12: NAME3 FALSE
13: NAME3 FALSE
14: NAME3 TRUE
15: NAME3 TRUE
比如这里我想选择每个NAME
3个第一排,所以我最终会与行:1-3,6-9和11-13。任何想法如何做到这一点?
我试过,但它不工作:
> SOURCE[1:3, VALUE, by=NAME]
NAME VALUE
1: NAME1 TRUE
2: NAME1 TRUE
3: NAME1 TRUE
'SOURCE [,head(.SD,3),by = NAME]'? (另外:'set.seed()'是你重复性的朋友) – hrbrmstr
另一个重复目标:http://stackoverflow.com/q/16325641/ – Frank