如果一个人对哪些列可用有先验知识,下面的代码可以重新排列列,但是如果要以降序/升序重新排列列,该怎么办?在StackOverflow上有一些类似的帖子,但是如果没有事先知道哪些列可用,那么没有哪个帖子可以做到。
type value
1 rna 1
2 rna 2
3 rna 3
4 dna 20
5 dna 30
d<- data.frame (type=c("rna","rna","rna"), value = c(1,2,3) )
d2 <- data.frame (type=c("dna","dna"), value = c(20,30) )
df <- rbind (d,d2)
library(dplyr)
df %>%
group_by(type) %>%
summarise_all(sum) %>%
data.frame() %>%
arrange(desc(value)) %>% # reorder row
select_(.dots = c("value","type") ) # reorder column
最佳答案
sort(names(.))
或rev(sort(names(.)))
应该可以工作...
d<- data.frame (type=c("rna","rna","rna"), value = c(1,2,3) )
d2 <- data.frame (type=c("dna","dna"), value = c(20,30) )
df <- rbind (d,d2)
library(dplyr)
df %>%
group_by(type) %>%
summarise_all(sum) %>%
data.frame() %>%
arrange(desc(value)) %>% # reorder row
select(sort(names(.)))
关于r - 使用dplyr重新排列列(降序/升序)而无需先行向量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50610098/