R 如何自动查找多个类别的变异系数?
在我的数据中,每个空间单元有1000个度量值,我想绘制每个空间单元的变异系数。我知道如何计算整个数据集的变异系数,但如何: 1)创建一个函数,该函数将获取所有类别名称(列中的唯一值)。 2)仅对每个类别中的数据应用CV函数 3)输出结果,以便将其绘制为x=类别和y=CV Iris数据集可以用作示例。假设我想知道每个物种花瓣长度的变异系数。简历本身很简单,但我对它的其余部分感到茫然R 如何自动查找多个类别的变异系数?,r,R,在我的数据中,每个空间单元有1000个度量值,我想绘制每个空间单元的变异系数。我知道如何计算整个数据集的变异系数,但如何: 1)创建一个函数,该函数将获取所有类别名称(列中的唯一值)。 2)仅对每个类别中的数据应用CV函数 3)输出结果,以便将其绘制为x=类别和y=CV Iris数据集可以用作示例。假设我想知道每个物种花瓣长度的变异系数。简历本身很简单,但我对它的其余部分感到茫然 data(iris) CV<-function(mean,sd){ (sd/mean)*100 } Iri
data(iris)
CV<-function(mean,sd){
(sd/mean)*100
}
IrisCV<-CV(mean=mean(iris$Petal.Length), sd=sd(iris$Petal.Length))
IrisCV
数据(iris)
CV首先,您应该将函数更改为:
CV <- function(x){
(sd(x)/mean(x))*100
}
太好了,谢谢。只是为了确保我理解:对函数的编辑是为了减少文本,对吗?不一定是因为我的原始代码中存在固有的语法问题?您的初始函数工作正常,但它效率低下,因为它不能准确计算CV
,只需将两个输入相互除以*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