作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Var1 <- 90:115
Var2 <- 1:26
Var3 <- 52:27
data <- data.frame(Var1, Var2, Var3)
你好,我想从每一列中选择 10 个最大值并将它们保存在一个新的数据框中?我知道在我的示例中,新数据框将包含 20 行,但我不了解正确的工作流程。
这就是我所期待的:
Var1 Var2 Var3
90 1 52
91 2 51
92 3 50
93 4 49
94 5 48
95 6 47
96 7 46
97 8 45
98 9 44
99 10 43
106 17 36
107 18 35
108 19 34
109 20 33
110 21 32
111 22 31
112 23 30
113 24 29
114 25 28
115 26 27
我可以用这种方法解决我的三列问题
df <- subset(data, Var1 >=106 | Var2 >=17 | Var3 >=43)
但如果我必须对 50 多个列执行此操作,这并不是真正的最佳解决方案。
最佳答案
这可以通过使用 lapply
遍历列,对它们进行排序
,并使用 head
获取前 10 个值来完成。
data.frame(lapply(data, function(x) head(sort(x,
decreasing=TRUE) ,10)))
如果我们需要前 10 行,只需使用
head(data, 10)
基于OP的编辑
data[sort(Reduce(union,lapply(data, function(x)
order(x,decreasing=TRUE)[1:10]))),]
关于r - 如何从三个不同的列中选择 10 个最大值并将它们保存在 R 中的新数据框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35184722/
我是一名优秀的程序员,十分优秀!