scr*_*Owl 5 sorting r dataframe
如何使用一列对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"
Run Code Online (Sandbox Code Playgroud)
但是,如果我添加一个空白列,一切正常:
> 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
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
您可以添加drop=FALSE
,它将适用于大多数情况。的默认选项[
是drop=TRUE
df1[order(df1$col1),, drop=FALSE]
Run Code Online (Sandbox Code Playgroud)
在?`[`的帮助页面中,默认参数可以在“用法”中找到
x[i, j, ... , drop = TRUE]
Run Code Online (Sandbox Code Playgroud)
和用于描述drop
如
drop:用于矩阵和数组。如果为“ TRUE”,则将结果强制为最小尺寸(请参见示例)。这仅适用于提取元素,不适用于替换。有关更多详细信息,请参见“放置”。
归档时间: |
|
查看次数: |
2121 次 |
最近记录: |