У меня есть кадр данных , который немного похож на
Indices<-data.frame("Animal"=c("Cat", "Cat", "Cat", "Dog", "Dog", "Dog", "Dog", "Bird",
"Bird"), "Trend"=c(1,3,5,-3,1,2,4,2,1), "Project"=c("ABC", "ABC2",
"EDF", "ABC", "EDF", "GHI", "ABC2", "ABC", "GHI"))
Я хочу выяснить, отличаются ли две или более оценки тренда на >= 3
в каждой группе животных. Я попытался использовать mutate
и lag
:
Indices %>%
group_by(CommonName) %>%
mutate(Diff = Trend - lag(Trend))
Но это только показывает разницу между строками, расположенными сразу друг за другом, и я пытаюсь увидеть разницу между всеми строками в группе. Это также дает мне различия, но не говорит мне, если значение >=3
.
Я бы предпочел, чтобы конечный результат представлял собой список животных и названий проектов с абсолютной разницей в тенденциях >=3
.
Animal TrendDiff Projects
Cat 4 ABC-EDF
Dog 7 ABC-ABC2
Dog 3 ABC2-EDF
Dog 4 ABC-EDF
Dog 5 ABC-GHI
У меня более 200 различных "животных" "групп и более 400 строк, поэтому они должны быть такими, чтобы не указывать каждую строку. Я все еще очень плохо знаком с r , поэтому, пожалуйста, уточните c с вашими ответами. Спасибо!