如何通过获取mtcars数据集中的均值和hp的平均值,在数据聚合的基础上为rownames创建排名?

问题描述 投票:-1回答:1

我想要数字列mpghp的平均值。在此数据框架中,必须根据mpghp为每个制造商分别计算每个制造商的等级。制造商的最终度量值为0.6 * mpg + 0.4 * hp。请参阅以下代码:

data(mtcars)
t<-mtcars
d<-aggregate(mpg~hp,data = t,FUN = mean)
d

通过这样做,我们得到一个列表。但此列表不包含制造商的名称。我们如何获得制造商的排名? 。

r ranking
1个回答
0
投票

请看下面,据说行名称的第一个单词将给出制造商的名称:

data(mtcars)

t <- mtcars
t$mfg <- vapply(rownames(mtcars), function(x) unlist(strsplit(x, " "))[1], "")
d <- aggregate(. ~ mfg, data = t, FUN = function(x) mean(x))[, c("mfg", "mpg", "hp")]
d[, 2:3] <- lapply(d[, 2:3], rank) 
d$final <- rank(0.6 * d$mpg + 0.4 *d$hp)
head(d)

输出,最终指标在final列中:

       mfg  mpg   hp final
1      AMC  7.0 12.5   4.0
2 Cadillac  1.5 16.0   1.0
3   Camaro  3.0 19.5   5.0
4 Chrysler  5.0 18.0   7.0
5   Datsun 17.0  5.0  10.5
6    Dodge  8.0 12.5   6.0
© www.soinside.com 2019 - 2024. All rights reserved.