如何自动查找多个类别的变异系数?

时间:2016-11-22 17:27:39

标签: r

在我的数据中,我对每个空间单位有1000个度量,并且想要绘制每个单位的变异系数。我知道如何计算整个数据集的变异系数,但我将如何:

1)创建一个能够获取所有类别名称的功能(列中的唯一值)。

2)将CV函数仅应用于每个类别中的数据

3)输出结果,以便将它们绘制为x = category和y = CV

可以使用Iris数据集作为示例。让我们说我想知道每个物种的花瓣长度的变异系数。简历本身很简单,但我对其余部分感到茫然。

data(iris)
CV<-function(mean,sd){
  (sd/mean)*100
}
IrisCV<-CV(mean=mean(iris$Petal.Length), sd=sd(iris$Petal.Length))
IrisCV

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

首先,您应该将功能更改为:

CV <- function(x){
        (sd(x)/mean(x))*100
}

然后您可以使用aggregate()

aggregate(Petal.Length ~ Species, 
          data = iris,
          FUN = CV)
#     Species Petal.Length
#1     setosa    11.878522
#2 versicolor    11.030774
#3  virginica     9.940466