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

标签 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

非常感谢任何帮助!

最佳答案

首先,您应该将函数更改为:

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

关于r - 如何自动查找多个类别的变异系数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40748054/

相关文章:

r - 设置geom_vline的线型?

r - 在 r 中绘制同心饼图

r - 在 R 中拟合曲线 "around"数据点

r - 探测要在函数内部调用的全局变量

r - 有没有通用的方法来引用公式对象中 R 数据框的最后一列?

rgdax (coinbase) 数据没有按预期收集数据

R 数据框 : add values in common rows

r - 比 r 中的 ifelse() 更快的函数

r - 具有 ddply 的连续子群

r - 如何使用 summarise_at 将不同的函数应用于不同的列?