У меня есть база данных стран, которые получили определенные баллы (polity2) за каждый год до 2018 года. Я буду sh, чтобы удалить из страны все страны, которые не набрали 6 или выше непрерывно с 1998 по 2018. Мне удалось создать подмножество, включающее только страны, набравшие 6+ баллов за период 1998-2018 гг. с помощью этого кода:
polity4 <- polity4[,c("scode", "country", "year",
"democ", "autoc", "polity2")]
#storing subset of countries that fit the criteria of having Polity2 scores of 6 or above from 1998 to 2018
democratic <- subset(polity4, (year>1997 & polity2 >= 6))
Вот как выглядит теперь фрейм данных :
scode country year democ autoc polity2
<chr> <chr> <dbl> <dbl> <dbl> <dbl>
1 USA United States 1998 10 0 10
2 USA United States 1999 10 0 10
3 USA United States 2000 10 0 10
4 USA United States 2001 10 0 10
5 USA United States 2002 10 0 10
6 USA United States 2003 10 0 10
7 USA United States 2004 10 0 10
8 USA United States 2005 10 0 10
9 USA United States 2006 10 0 10
10 USA United States 2007 10 0 10
Однако я теперь буду sh, чтобы создать способ циклически проходить через подмножество и удалять строки, которые появляются из-за того, что страна набрала очки, они набрали 6+ хотя бы один раз в течение периода, но не непрерывно в течение 20 лет.
Я попытался создать новый столбец, в котором подсчитываются случаи появления страны в новом подмножестве (для того, чтобы она была непрерывной, должно быть меньше 21 ), чтобы использовать это в l oop:
democratic$count <- democratic[,c("scode")] %>% group_by(scode) %>% mutate(count = n())
Однако я экспериментировал с использованием by (), но не могу понять, как создать этот l oop.
Извините, если я сделал это слишком сложным, или если это глупый вопрос, и заранее спасибо.
РЕДАКТИРОВАТЬ: вот часть текущего кадра данных:
scode country year democ autoc polity2
<chr> <chr> <dbl> <dbl> <dbl> <dbl>
1 RUM Romania 1998 8 0 8
2 RUM Romania 1999 8 0 8
3 RUM Romania 2000 8 0 8
4 RUM Romania 2001 8 0 8
5 RUM Romania 2002 8 0 8
6 RUM Romania 2003 8 0 8
7 RUM Romania 2004 9 0 9
8 RUM Romania 2005 9 0 9
9 RUM Romania 2006 9 0 9
10 RUM Romania 2007 9 0 9
11 RUM Romania 2008 9 0 9
12 RUM Romania 2009 9 0 9
13 RUM Romania 2010 9 0 9
14 RUM Romania 2011 9 0 9
15 RUM Romania 2012 9 0 9
16 RUM Romania 2013 9 0 9
17 RUM Romania 2014 9 0 9
18 RUM Romania 2015 9 0 9
19 RUM Romania 2016 9 0 9
20 RUM Romania 2017 9 0 9
21 RUM Romania 2018 9 0 9
22 RUS Russia 2000 6 0 6
23 RUS Russia 2001 6 0 6
24 RUS Russia 2002 6 0 6
25 RUS Russia 2003 6 0 6
26 RUS Russia 2004 6 0 6
27 RUS Russia 2005 6 0 6
28 RUS Russia 2006 6 0 6
29 EST Estonia 1998 7 1 6
30 EST Estonia 1999 8 1 7
Принимая во внимание, что с Румынией все в порядке, так как она постоянно набирала 6 и более баллов с 1998 по 2018 год, Россия набрала только 6 и более баллов в 2000-06 гг., И поэтому не соответствует непрерывным критериям, которые я ищу, и должна быть удалена. *