r - 按值和一组多组列对R中的数据框进行排序
问题描述
我找不到如何结合两个特定条件。
假设我们有两列。第一栏是工资,第二栏是城市,如下:
df <- data.frame(salary = c(100, 200, 150, 300, 350),
city = c("nyc", "la", "la", "nyc", "la"))
现在的情况是只显示city = "nyc"
和的值salary
以降序排列。如何从包含多个组的列中只显示一个组?
解决方案
我们将“City”为“nyc”的行子集,然后order
按降序排列“Salary”列
df1 <- df[df$City == 'nyc',]
df1[order(-df1$Salary),]
# Salary City
#4 300 nyc
#1 100 nyc
如果我们只需要 'Salary' 列
with(df, sort(Salary[City == 'nyc'], decreasing = TRUE))
#[1] 300 100
或与dplyr
library(dplyr)
df %>%
filter(City == 'nyc') %>%
arrange(desc(Salary))
数据
df <- data.frame(Salary = c(100, 200, 150, 300, 350),
City = c("nyc", "la", "la", "nyc", "la"))
推荐阅读
- mysql - 插入到 SIMILAR 键更新时从不同表中选择
- angular - 使用@ngrx/data,得到“没有实体类型 [x] 的实体定义”
- docker - ERRO[0043] 拨打 gRPC 失败:无法升级到 h2c,收到 501
- c# - 由于阻塞 VERB 命中而出现 HTTP 500 时披露的服务器版本
- python - 如何从 python 中的私有存储库下载 GitHub 发布资产?
- unity3d - Cinemachine Virtual Camera 在保持死区的同时在对象之间转换
- javascript - highcharts 中的用户输入
- php - (70007) 指定的超时在 apache 2.4 php-fpm 上已过期
- lorawan - lorawan 中的 AppEUI 是如何定义的?
- javascript - 实现选项卡缩小全日历