У меня есть большой набор данных из примерно 35000 наблюдений и 24 переменных (одна из которых является временным рядом), но я могу резюмировать, чего я хочу достичь с помощью радужной оболочки глаза.
library(tidyverse)
iris.new <- iris %>%
arrange(Species, Sepal.Length, Sepal.Width) %>%
group_by(Species)
unwanted <- iris.new %>%
filter(Sepal.Length > 5 & Sepal.Width==min(Sepal.Width))
while(nrow(unwanted)!=0) {
iris.new <- iris.new %>%
arrange(Species, Sepal.Length, Sepal.Width) %>%
group_by(Species) %>%
filter(!(Sepal.Length > 5 & Sepal.Width == min(Sepal.Width)))
unwanted <- iris.new %>%
filter(Sepal.Length > 5 & Sepal.Width==min(Sepal.Width))
}
Я хочу отфильтровать только Sepal.Length> 5, у которого есть минимальная ширина Sepal.Width в пределах наблюдений для каждого вида (у setosa и versicolor нет). Когда я избавился от первого, я повторяю фильтр, чтобы увидеть, есть ли он, и, наконец, использовал цикл while, чтобы сделать это за меня.
Есть ли способ отфильтровать их без использования цикла?