То есть вы хотите сравнить каждую строку для этих условий, кроме 2000 года?
Если бы я пошел по этому пути, я бы присоединил к самому фрейму данных, отфильтрованный до 2000 года. Предполагая, что ваш фрейм данных называется df
require(dplyr)
df_base <- df %>% left_join(
df %>%
filter(Year == 2000) %>% #get just year 2000 results
select(-Year) %>% #remove year so that it does not join on it
rename(base = result) #rename the result column of the cut dataframe to base
)
Это объединит все остальные столбцы, отличные от года, то есть того же штата и города и всех ваших условий, и вернет полный фрейм данных с новым столбцом с именем «base» с результатом 2000 года для state + city + условия. Если есть другие столбцы, к которым вы не хотите присоединяться, вы можете либо удалить их в select, либо указать все столбцы, к которым нужно присоединиться явно, используя переменную «by» в left_join.