想知道以下是否是一个错误......
数据框
df <- data.frame(Name=rep(letters[1:3],each=3), Value=c(20,40,35,70,80,90,10,20,30))
一些操作
library(tidyverse)
df1 <- split(df, df$Name) %>%
map(., ~.x %>% arrange(desc(Value)))
df2 <- map_dbl(df1, ~head(.x$Value, 1))
- 查看数据
head(df2)
a b c
40 90 30
str(df2)
Named num [1:3] 40 90 30
- attr(*, "names")= chr [1:3] "a" "b" "c"
- ?BUG
order(df2)
[1] 3 1 2
给出错误答案,但
df2['a'] > df2['c']
TRUE
给出了正确的答案。我做错了吗?
答案 0 :(得分:0)
默认情况下,order
有decreasing = FALSE
。这意味着它提供升序顺序。要从最高层向下获取订单,我们可以
order(df2, decreasing = TRUE)
# [1] 2 1 3
答案 1 :(得分:0)
order
将返回原始列表中的排序位置 顺序返回一个排列,将其第一个参数重新排列为升序或降序
例如:
Dat=data.frame(a=c(2,1,4,6,3),b=c(1,2,3,4,5))
order(Dat$a)
[1] 2 1 5 3 4
Dat[order(Dat$a),]
a b
2 1 2
1 2 1
5 3 5
3 4 3
4 6 4
您正在寻找等级返回向量中值的示例等级
rank(Dat$a)
[1] 2 1 4 5 3