Z nejakého dôvodu pomocou funkcie order odstraňujem stĺpce v mojom dátovom rámci, ak má 2 riadky alebo menej.
> coredf2
state start end
1 core 3 0
2 core 1 2
> coredf2[order("end")]
state
1 core
2 core
> coredf2[-order("end")]
start end
1 3 0
2 1 2
>stateList
state start end
1 core 1 4
2 core 7 10
>stateList[order(stateList[, "start"])]
state start
1 core 1
2 core 7
Je to zamýšľaný účinok? Nechcem písať špeciálnu výnimku pre 2 alebo menej riadkov, takže to nie je niečo, čo z toho netrpí?
odpovede:
3 pre odpoveď č. 1Vaša syntax pre zoradenie a data.frame
nie je správne. Tu je príklad triedenia coredf2
podľa stĺpca end
v zostupnom poradí:
coredf2 <- data.frame(state = "core", start = c(3 ,1), end = c(0, 2))
coredf2[order(-coredf2$end), ]
#> state start end
#> 2 core 1 2
#> 1 core 3 0
1 pre odpoveď č. 2
Riešenie dplyr je tiež veľmi jednoduché:
library(dplyr)
coredf2 <- data.frame(state = "core", start = c(3 ,1), end = c(0, 2))
arrange(coredf2, desc(end))