В моих данных у меня есть 1000 измерений для каждой пространственной единицы и хотелось бы построить коэффициент вариации каждого из этих блоков. Я знаю, как рассчитать коэффициент вариации для всего набора данных, но как бы:Как автоматизировать поиск коэффициента вариации для нескольких категорий?
1) Создайте функцию, которая будет захватывать все имена категорий (уникальные значения в столбце).
2) Использование функции CV только те данные в каждой категории
3) Выходной результат таким образом, они могут быть нанесены в виде х = категории и у = CV
Ирис в качестве примера можно использовать набор данных. Позволяет сказать, что я хотел бы знать коэффициент вариации длины лепестков для каждого вида. Сам CV достаточно прост, но я потерял его.
data(iris)
CV<-function(mean,sd){
(sd/mean)*100
}
IrisCV<-CV(mean=mean(iris$Petal.Length), sd=sd(iris$Petal.Length))
IrisCV
Любая помощь очень ценится!
совершенное спасибо. Просто чтобы убедиться, что я понимаю: редактирование функции состояло в том, чтобы разрезать текст правильно? не обязательно, потому что в моем исходном коде была проблема с синтаксисом. – Jesse001
Ваша начальная функция работает, но она неэффективна, потому что она точно не вычисляет 'CV', просто делит ваши два входа друг на друга' * 100'. Во-вторых, оба входа рассчитываются из одного и того же вектора, поэтому лучше упростить и переместить всю операцию внутри функции. Вы можете 'aggregate()' легко. – mtoto