如何重新排序数据框?我希望最下面一行位于顶部,最上面一行位于底部(反向)。
答案 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()))