фильтр dplyr и петля в R - PullRequest
       14

фильтр dplyr и петля в R

0 голосов
/ 07 марта 2019

Все структуры данных являются фреймами данных.Я написал с использованием синтаксиса dplyr в R. Я хочу заменить этот код на цикл 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 (i in 1:length(tb0226_cate_below_100$Var1)){
  rbind(
    query0226 %>% 
      filter(t1.cate == tb0226_cate_below_100$Var1[i]) %>% select(t1.query, t1.cate)
  )
}

1 Ответ

0 голосов
/ 07 марта 2019

Вы можете сделать

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))
}

, и теперь temp является окончательным кадром данных.Вы можете удалить unique, если Var1 имеет только уникальные записи.

Проверено с помощью mtcars набора данных

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))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...