按字母顺序对列表中的数据框进行排序

时间:2019-04-05 15:42:09

标签: r

我想知道如何对列表中的数据帧进行排序。

xf1b <- data.frame(c(7,5,3,4,5), c(43,56,23,78,89))    
cf2b <- data.frame(c(7,5,3,4,6), c(43,56,24,48,89))    
df3b <- data.frame(c(7,5,3,4,5), c(43,56,23,78,89)) 

colnames(xf1b) <- c("xVar1","xVar2")    
colnames(cf2b) <- c("yVar1","yVar2")    
colnames(df3b) <- c("zVar1","zVar2")

a2 <- list(xf1b,cf2b,df3b)    
names(a2) <- c("XYZ","DEC","CED")

如何按字母顺序对a2进行排序?

1 个答案:

答案 0 :(得分:2)

我们可以在'a2'的ordernames

a2[order(names(a2))]

如果它是data.framelist的顺序

lapply(a2, function(x) x[order(names(x))])

或与tidyverse

library(tidyverse)
map(a2, ~ .x %>%
             select(sort(names(.))))

如果要将“ Var1”和“ Var2”列放在一起

bind_cols(a2) %>% 
     split.default(., substring(names(.), 2))