在R中使用我自己的函数时,aggregate()出现错误消息



我是R的新生,只有在使用我编写的函数时,我才难以使用aggregate((;它适用于mean、min等。我假设问题出在我的函数"myfun"的结构中。但"myfun"与我的数据集配合得很好。有什么关于如何解决这个问题的建议吗?

下面的代码包括我创建的"myfun"功能:

编写功能

'myfun <- function(f){   
min <- min(f)         
max <- max(f)         
mean <- mean(f)      
range <- max(f) - min(f)     
lst <- list(min = min, max = max, mean = mean, range = range)  
return(lst)
}'

'myfun(NoNAs$Infection)  # apply function to print min, max, mean, & range of Infection'

问题5:使用aggregate((计算每个物种的相应感染值。让自变量FUN是您在问题4中定义的函数。

'aggregate(NoNAs$Infection, by = list(NoNAs$Species), FUN = mean)
aggregate(NoNAs$Infection, by = list(NoNAs$Species), FUN = myfun)'

下面是NoNA数据集结构的一个片段,其中我已经删除了所有包含NA的行

在此处输入图像描述

谢谢你的帮助!

将您的函数更改为:

myfun <- function(f){   
min <- min(f)         
max <- max(f)         
mean <- mean(f)      
range <- max(f) - min(f)     
lst <- c(min = min, max = max, mean = mean, range = range)  
return(lst)
}

由于您没有提供可复制的数据,我们可以使用iris:

data(iris)
aggregate(Sepal.Width~Species, iris, myfun)
#      Species Sepal.Width.min Sepal.Width.max Sepal.Width.mean Sepal.Width.range
# 1     setosa           2.300           4.400            3.428             2.100
# 2 versicolor           2.000           3.400            2.770             1.400
# 3  virginica           2.200           3.800            2.974             1.600

最新更新