我想知道是否有办法根据向量中的位置提取值,例如,我有一个包含两个向量的数据框,我将它们从原始数据中按 V1 分组,按 V2 分组,很像 ORDER SQL 中的 BY。当我尝试取出每个 V1 组类型的 3rd Min 时,我的问题出现了。

有序数据框...

V1  V2
Ford    18
Ford    16
Ford    15
Ford    14
Ford    12
**Ford  5**
Ford    2
Ford    1
Nisan   10
Nisan   9
Nisan   8
Nisan   7
Nisan   6
**Nisan     5**
Nisan   4
Nisan   3
Toyota  20
Toyota  19
Toyota  15
Toyota  12
Toyota  11
**Toyota    10**
Toyota  6
Toyota  2

结果我想要在新数据框中,每个变量的第 3 个最小值...
V1 V2
Ford 5
Nisan 5
Toyota 10

提前致谢。

最佳答案

使用基础 R 你可以做类似的事情

aggregate(V2 ~ V1, df[order(df$V2), ], `[`, 3L)
#       V1 V2
# 1   Ford  5
# 2  Nisan  5
# 3 Toyota 10

或者(根据@akruns 评论)使用 ave
df[with(df, ave(V2, V1, FUN = order)) == 3L,]

关于R编程数据框——根据位置返回值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30034225/

10-08 22:45