在排除第一行的R中按降序对列进行排序

时间:2015-07-09 14:49:49

标签: r sorting row

我有一个包含5列和非常大的数据集的数据框。我想按第3列排序。如何在第一行之后对所有内容进行排序。 (调用此函数时,我想用nrows结束它)

示例输出:

原件:

4
7
9
6
8

新:

4
9
8
7
6

谢谢!

3 个答案:

答案 0 :(得分:2)

如果我正确理解你想做什么,这种方法应该有效:

z <- data.frame(x1 = seq(10), x2 = rep(c(2,3), 5), x3 = seq(14, 23))
zsub <- z[2:nrow(z),]
zsub <- zsub[order(-zsub[,3]),]
znew <- rbind(z[1,], zsub)

基本上,剪掉你想要排序的行,在第3列按降序排序,然后重新连接第一行。

这是使用dplyr的管道版本,因此您不会使用额外的对象混乱工作区:

library(dplyr)
z <- z %>%
    slice(2:nrow(z)) %>%
    arrange(-x3) %>%
    rbind(slice(z, 1), .)

答案 1 :(得分:1)

您可以尝试使用这一行代码来修改数据框df中的第三列,如下所述:

df[,3] <- c(df[1,3],sort(df[-1,3]))

答案 2 :(得分:0)

#define   IsIphone6Plus     ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )1104 ) < DBL_EPSILON )
#define   IsIphone6     ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )667 ) < DBL_EPSILON )
#define   IsIphone5     ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
#define   IsIphone4     ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )480 ) < DBL_EPSILON )