r - 如何通过取 mtcars 数据集中的均值和 hp 的平均值在数据聚合的基础上为行名创建 r 排名?
问题描述
我想要数字列的平均值mpg
和hp
. mpg
在此数据框中,每个制造商的排名必须根据和为每个制造商单独计算。制造商的hp
最终度量值为0.6 * mpg + 0.4 * hp
。请看下面的代码:
data(mtcars)
t<-mtcars
d<-aggregate(mpg~hp,data = t,FUN = mean)
d
通过这样做,我们得到一个列表。但此列表不包含制造商的名称。我们如何才能获得制造商的排名?.
解决方案
请看下面,据说行名的第一个单词会给出制造商的名称:
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
推荐阅读
- arduino - 即使引脚接地,analogRead() 输出也会振荡
- javascript - php和javascript执行嵌套函数的区别
- scala - 将 \/[A, B] 提升为 EitherT[Future, A, B]
- erlang - gen_server:reply/2: 发送给客户端的消息格式
- html - 使用自动填充创建自定义输入框
- javascript - 如何自动调用 RESTful Web 服务
- python - 如何从彭博 API 中获取有关特定证券(股票)和日期范围的新闻?
- java - 在通过android上传之前是否可以降低视频文件的质量?
- javascript - 当发生另一个交互时,Javascript 函数停止执行
- android - 如何修复:Android Api 28 DisplayManager#getDisplays() 函数使应用程序崩溃