我有下面的代码,目前,对于三种不同类型的物种,它以相同的输出打印出所有150个观测值。我正在尝试将其设置为仅打印出3行,每种类型的一行。有人可以帮我将此子集吗?
iris_summary <- function(irisdata) {
newiris = data.frame(irisdata$Species,
MeanSepalLength = mean(irisdata$Sepal.Length),
MeanSepalWidth = mean(irisdata$Sepal.Width),
MeanPetalLength = mean(irisdata$Petal.Length),
MeanPetalWidth = mean(irisdata$Petal.Width))
return(newiris)
}
iris_summary(iris)
答案 0 :(得分:0)
您可以直接使用dplyr汇总来获取所有3个物种的均值。试试这个:
library(dplyr)
iris_avg <- iris %>% group_by(Species) %>% summarise_all(funs(mean))
> iris_avg
# A tibble: 3 x 5
Species Sepal.Length Sepal.Width Petal.Length Petal.Width
1 setosa 5.01 3.43 1.46 0.246
2 versicolor 5.94 2.77 4.26 1.33
3 virginica 6.59 2.97 5.55 2.03