R提供最大值和最小值,但除了从整个向量中排序而不是从此向量中选取值x之外,我没有看到在序列中找到另一个值的快速方法.
是否有更快的方法来获得第二高的值(例如)?
谢谢
我正在 R 工作,如果可能的话,我更喜欢 dplyr 解决方案。
样本数据:
data.frame(
col1 = c("a", "b", "c", "d"),
col2 = c("a", "b", "d", "a"),
col3 = rep("a", 4L),
col4 = c("a", "b", "d", "a"),
col5 = c("a", "a", "c", "d"),
col6 = rep(c("b", "a"), each = 2L)
)
Run Code Online (Sandbox Code Playgroud)
| 第 1 列 | 列2 | 第 3 列 | 第 4 列 | 第5栏 | 第 6 栏 |
|---|---|---|---|---|---|
| A | A | A | A | A | 乙 |
| 乙 | 乙 | A | 乙 | A | 乙 |
| C | d | A | d | C | A |
| d | A | A | A | d … |
我有一个大矩阵:
set.seed(1)
a <- matrix(runif(9e+07),ncol=300)
Run Code Online (Sandbox Code Playgroud)
我想对矩阵中的每一行进行排序:
> system.time(sorted <- t(apply(a,1,sort)))
user system elapsed
42.48 3.40 45.88
Run Code Online (Sandbox Code Playgroud)
我有很多RAM可以使用,但我想要一种更快的方法来执行此操作.
我的数据看起来像,
A B C D
B C A D
X Y M Z
O M L P
Run Code Online (Sandbox Code Playgroud)
如何对行进行排序以获得类似的内容
A B C D
A B C D
M X Y Z
L M O P
Run Code Online (Sandbox Code Playgroud)
谢谢,