【问题标题】:Sorting of data frame in R [duplicate]R中数据框的排序[重复]
【发布时间】:2016-07-16 12:30:18
【问题描述】:

我尝试在 R 中对数据框进行排序,但无法这样做。我有 4 列的数据框,想从第一列对数据框进行排序。任何想法,我如何从第一列的条目中对数据框进行排序?

【问题讨论】:

  • ?order。那应该让你开始。 SO上有很多类似的问题。

标签: r


【解决方案1】:

我们也可以使用data.table。将“data.frame”转换为“data.table”(setDT(my.data) 并将“key”设置为“y”

library(data.table)
setDT(my.data, key = "y")
my.data
#            y x1    x2 X3
#1: -0.96730746  5 FALSE  e
#2: -0.31570803  2  TRUE  b
#3: -0.15321836  1  TRUE  a
#4: -0.08600789  3 FALSE  c
#5:  1.83347490  4 FALSE  d

注意:数据取自 @gung 的帖子。

【讨论】:

    【解决方案2】:

    您使用?order(另请参阅herehere)。考虑:

    set.seed(5443)
    (my.data <- data.frame(y=rnorm(5), 
                          x1=c(1:5), 
                          x2=c(TRUE, TRUE, FALSE, FALSE, FALSE),
                          X3=letters[1:5]))
    #             y x1    x2 X3
    # 1 -0.15321836  1  TRUE  a
    # 2 -0.31570803  2  TRUE  b
    # 3 -0.08600789  3 FALSE  c
    # 4  1.83347490  4 FALSE  d
    # 5 -0.96730746  5 FALSE  e
    (my.data <- my.data[order(my.data[,1]),])
    #             y x1    x2 X3
    # 5 -0.96730746  5 FALSE  e
    # 2 -0.31570803  2  TRUE  b
    # 1 -0.15321836  1  TRUE  a
    # 3 -0.08600789  3 FALSE  c
    # 4  1.83347490  4 FALSE  d
    

    【讨论】:

    • 下单后第一列怎么不一样了?
    • (我一定是抄错了。现在已经修复了。)所有列的顺序都不同,@QuantTrader。请参阅链接了解 order 的工作原理和排序方式。
    猜你喜欢
    • 2021-11-16
    • 2023-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 2020-12-18
    • 2021-08-03
    • 2015-07-07
    相关资源
    最近更新 更多