Повторите фрагмент кода dplyr x раз - PullRequest
2 голосов
/ 29 сентября 2019

Можно ли повторять строки кода определенное количество раз? Скажем, просто для примера, я хочу удалить по одной до 10 строк данных mtcars, у которых в столбце mpg есть «1» или 2 в столбце «wt», сначала запустив test, а затем test2 и начав заново. Если в одном из тестов или test2 не хватает строк, нам все равно нужно завершить другой.

test <-mtcars %>% filter(str_detect(mpg, "1"))%>% slice(tail(row_number(),1))
mtcars <- anti_join(mtcars, test, by = c("mpg"))

test2 <-mtcars %>% filter(str_detect(wt, "2"))%>% slice(tail(row_number(),1))
mtcars <- anti_join(mtcars, test2, by = c("wt"))

Я признаю, что у меня нет опыта в попытках сделать это. Я видел пару других примеров, но я не могу понять, как применить что-то вроде создания функции к тому, что я пытаюсь сделать.

ОБНОВЛЕНИЕ:

Вотнемного лучший пример. У меня есть несколько из них, добавление к одному большому кадру данных по одному. Мне нужно перезапустить каждый блок несколько раз, чтобы заполнить фрейм данных.

test <-iris %>% filter(str_detect(iris$Petal.Length, "1"))
testa <-test%>%slice(tail(row_number(),1))
iris <- anti_join(iris, testa, by = c("Petal.Length"))
bigdf <- rbind(testa)

1 Ответ

1 голос
/ 29 сентября 2019

Вы можете рассмотреть цикл, чтобы повторять выполнение кода определенное количество раз.

for (i in 1:10) {
    test <-mtcars %>% filter(str_detect(mpg, "1"))%>% slice(tail(row_number(),1))
mtcars <- anti_join(mtcars, test, by = c("mpg"))
}

Например, приведенный выше код будет повторяться 10 раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...