df1 class(d-6ren">
gpt4 book ai didi

r - 在单列数据框上使用 order

转载 作者:行者123 更新时间:2023-12-04 11:25:27 25 4
gpt4 key购买 nike

如何用一列对 data.frame 进行排序?

我正在使用以下内容:

> set.seed(456)
> df1 <- data.frame(col1 = runif(10))
> class(df1)
[1] "data.frame"
> df1 <- df1[order(df1$col1),]
> class(df1)
[1] "numeric"

但是,如果我添加一个空白列,一切正常:
> set.seed(456)
> df1 <- data.frame(col1 = runif(10))
> df1$dummy <- NA
> class(df1)
[1] "data.frame"
> df1 <- df1[order(df1$col1),]
> class(df1)
[1] "data.frame"
> df1
col1 dummy
7 0.08243274 NA
1 0.08955160 NA
2 0.21051232 NA
9 0.23750327 NA
8 0.28552695 NA
6 0.33195997 NA
10 0.38523617 NA
3 0.73295527 NA
5 0.78839789 NA
4 0.85213354 NA

有一个更好的方法吗?

最佳答案

您可以添加 drop=FALSE它适用于大多数情况。 [ 的默认选项是 drop=TRUE

 df1[order(df1$col1),, drop=FALSE]

在 ?`[` 的帮助页面中,可以在“用法”中找到默认参数
 x[i, j, ... , drop = TRUE]

以及 drop 的说明作为

drop: For matrices and arrays. If ‘TRUE’ the result is coerced to the lowest possible dimension (see the examples). This only works for extracting elements, not for the replacement. See ‘drop’ for further details.

关于r - 在单列数据框上使用 order,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31433362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com