我想按多列对data.frame进行排序.例如,对于下面的data.frame,我想按列z
(降序)然后按列b
(升序)排序:
dd <- data.frame(b = factor(c("Hi", "Med", "Hi", "Low"),
levels = c("Low", "Med", "Hi"), ordered = TRUE),
x = c("A", "D", "A", "C"), y = c(8, 3, 9, 9),
z = c(1, 1, 1, 2))
dd
b x y z
1 Hi A 8 1
2 Med D 3 1
3 Hi A 9 1
4 Low C 9 2
Run Code Online (Sandbox Code Playgroud) 如何使用一列对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 …
Run Code Online (Sandbox Code Playgroud)