重新排序dplyr中数据框的行

时间:2019-03-08 04:27:33

标签: r dplyr

如何重新排序数据框?我希望最下面一行位于顶部,最上面一行位于底部(反向)。

2 个答案:

答案 0 :(得分:4)

如果只想反转数据框,则有多种方法可以做到这一点。

以R为基数的一种方法是使用<build> <sourceDirectory>${basedir}/src</sourceDirectory> <testSourceDirectory>${basedir}/test</testSourceDirectory> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>3.0.1</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.7</source> <target>1.7</target> <excludes> <exclude>**/test/**</exclude> </excludes> </configuration> </plugin> </plugins> </build>

rev

如果对df[rev(1:nrow(df)), ] # a b #10 10 20 #9 9 19 #8 8 18 #7 7 17 #6 6 16 #5 5 15 #4 4 14 #3 3 13 #2 2 12 #1 1 11 解决方案感兴趣,我们可以

dplyr

数据

library(dplyr)
df %>% slice(n() - row_number() + 1)

答案 1 :(得分:2)

一个更简单的选择是将nrow(df):1用作行索引

df[nrow(df):1, ]

或者在data.table

library(data.table)
setDT(df)[.N:1]

或带有dplyr的选项

library(dplyr)
df %>% 
  arrange(desc(row_number()))