dplyr滤波器和R中的for循环

dplyr滤波器和R中的for循环,r,loops,for-loop,filter,dplyr,R,Loops,For Loop,Filter,Dplyr,所有数据结构都是数据帧。 我在R中使用了dplyr语法。 我想用for循环替换此代码 rbind( query0226 %>% filter(t1.cate == tb0226_cate_below_100$Var1[1]) %>% select(t1.query, t1.cate), query0226 %>% filter(t1.cate == tb0226_cate_below_100$Var1[2]) %>% select(t1.query, t1.c

所有数据结构都是数据帧。 我在R中使用了dplyr语法。 我想用for循环替换此代码

rbind(
query0226 %>% 
  filter(t1.cate == tb0226_cate_below_100$Var1[1]) %>% select(t1.query, t1.cate),
query0226 %>% 
  filter(t1.cate == tb0226_cate_below_100$Var1[2]) %>% select(t1.query, t1.cate),
query0226 %>% 
  filter(t1.cate == tb0226_cate_below_100$Var1[3]) %>% select(t1.query, t1.cate),
query0226 %>% 
  filter(t1.cate == tb0226_cate_below_100$Var1[4]) %>% select(t1.query, t1.cate),
query0226 %>% 
  filter(t1.cate == tb0226_cate_below_100$Var1[5]) %>% select(t1.query, t1.cate),
query0226 %>% 
  filter(t1.cate == tb0226_cate_below_100$Var1[6]) %>% select(t1.query, t1.cate)
)
所以我写了下面的代码,但它不起作用。 哪一部分错了

for(1中的i:长度(tb0226_cate_低于_100$Var1)){
阿尔宾德(
查询0226%>%
过滤器(t1.cate==tb0226\u cate\u低于\u 100$Var1[i])%>%select(t1.query,t1.cate)
)
}
你可以这样做

temp <- data.frame()
for (i in unique(tb0226_cate_below_100$Var1)){
  temp = rbind(temp, query0226 %>% filter(t1.cate == i) %>% select(t1.query,t1.cate))
}

但你为什么要这么做?也许我没有抓住要点,但与其保留
query0226
的子集,不如过滤掉不想保留的条目,这样会更快(更整洁)吗?这也将消除对这种有点笨拙的
for
循环的需要。也许我又误解了,但这似乎是一种非常不符合潮流的做事方式。
rbind(
   mtcars %>% filter(cyl ==4) %>% select(mpg, disp), 
   mtcars %>% filter(cyl ==6) %>% select(mpg, disp), 
   mtcars %>% filter(cyl ==8) %>% select(mpg, disp)
)

temp <- data.frame()
for (i in unique(mtcars$cyl)){
   temp = rbind(temp,mtcars %>% filter(cyl==i) %>% select(mpg, disp))
}