gpt4 book ai didi

r - 如何从三个不同的列中选择 10 个最大值并将它们保存在 R 中的新数据框中?

转载 作者:行者123 更新时间:2023-12-04 09:54:57 25 4
gpt4 key购买 nike

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com