希望按R中的索引对tibble进行排序。任何方法都可以在不使用反向序列的情况下执行此操作吗?
library(tibble)
library(dplyr)
options(tibble.width = Inf)
options(dplyr.print_max = Inf)
返回尾部进行比较......
iris %>% tail
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 145 6.7 3.3 5.7 2.5 virginica
# 146 6.7 3.0 5.2 2.3 virginica
# 147 6.3 2.5 5.0 1.9 virginica
# 148 6.5 3.0 5.2 2.0 virginica
# 149 6.2 3.4 5.4 2.3 virginica
# 150 5.9 3.0 5.1 1.8 virginica
(tibbleIris <- as_tibble(iris))
可以按反向顺序排序,但不是索引......
tibbleIris[nrow(tibbleIris):1,] # Sorts in reverse order
# # A tibble: 150 × 5
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# <dbl> <dbl> <dbl> <dbl> <fctr>
# 1 5.9 3.0 5.1 1.8 virginica
# 2 6.2 3.4 5.4 2.3 virginica
# 3 6.5 3.0 5.2 2.0 virginica
# 4 6.3 2.5 5.0 1.9 virginica
# 5 6.7 3.0 5.2 2.3 virginica
# 6 6.7 3.3 5.7 2.5 virginica
tibbleIris %>% arrange(-index)
# Error: object 'index' not found
答案 0 :(得分:2)
仍然不确定你的意思:这似乎有效:
iris %>% as_tibble %>% arrange(desc(as.numeric(rownames(iris))))
(为简单起见,我省略了tibbleIris
的中间分配)。使用rownames相当unid-tidyverse-ish,所以我可能会建议设置一个显式的索引变量......
iris %>% as_tibble %>% mutate(index=seq(n())) %>%
arrange(desc(index))