r - 如何反转由另一列分组的数据框中的一列中的值的顺序?
问题描述
给定以下玩具数据框:
df <- data.frame(A = c("A", "A", "A", "B", "B", "C", "C", "C", "C", "C"),
B = c(1, 2, 3, 1, 2, 1, 2, 3, 4, 5))
此数据框由 2 列组成,其中两列均按升序排序。
所需的结果是相同的数据框,但对于由“A”列中的值指定的每个组,“B”列的值相反:
> df
A B
1 A 3
2 A 2
3 A 1
4 B 2
5 B 1
6 C 5
7 C 4
8 C 3
9 C 2
10 C 1
解决方案
在这种情况下,“B”列是数字,因此使用order
前面带有减号的函数df$B
有效
df$B <- df$B[order(df$A, -df$B)]
更一般的用途是xtfrm
在其他类似情况下列“B”不是数字的情况下使用该函数:
df$B <- df$B[order(df$A, -xtfrm(df$B))]
推荐阅读
- android - 无法将数据绑定添加到我的项目
- vue.js - 试图让 Kendo UI 包装器在 Nuxt 中工作
- javascript - 加载时未从数据库加载数据(php + ajax)
- c++ - 在 CentOS7 与 g++ 的 DLL 链接后未声明 C++ 函数
- json - Spring 请求返回 json 或 xml 响应
- python - 如何创建趋势线日期与数据(百分比值)
- ballerina - 你如何在 Ballerina 中四舍五入浮点值?
- java - 如何有条件地增加?
- spring - CamelContextStartedEvent 调用了两次
- oracle - 为什么我的 Oracle 客户端安装没有出现在 Windows 控制面板中?