将数据集仅设置为仅在R

时间:2017-11-11 01:35:13

标签: r data.table subset

我有一个数据集,我想将其子集化为仅有一个组的子组具有2个或更多唯一类的观察,(我试图将调查中的受访者分配到Nielsen DMA的跨州状态。)< / p>

所以,如果我有这个数据帧:

start <- data.frame("obs"=seq(1,10, by=1),"grp"=c(rep("A",4), rep("B",3),rep("C",3)), "sub_grp"=c(rep("A1",2), rep("A2",2), rep("B1",3), "C1","C2","C3"))

我需要使用什么命令将其子集化为此?

end <- data.frame("obs"=c(seq(1,4,by=1), seq(8,10, by=1)), "grp"=c(rep("A",4), rep("C",3)), "sub_grp"=c("A1","A1","A2","A2","C1","C2","C3"))

数据集都是data.tables,所以我认为该包中必须有一个特殊命令来执行此操作。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

使用data.table,您可以使用uniqueN检查 sub_grp 中的唯一值的数量,如果它大于1,请将该组保留为{{ 1}}:

.SD

答案 1 :(得分:1)

您可以使用 <div class="thermometer"> <div class="pointer"> </div> </div> <div class="input"> <form onsubmit="run(event)"> <input id='temperature' type="text" placeholder="°C" onfocus="this.placeholder=''" onblur="this.placeholder=''"> <input type="submit" value="Run" > </form> </div>库:

dplyr

这会给你结果:

library(dplyr)

start %>% 
  group_by(grp) %>%
  filter(length(unique(sub_grp)) >= 2) %>% 
  ungroup