我有一堆列分布在整个DataFrame中。这些列有一个共同点,那就是它们的列名都包含“___”。如何将所有这些列移动到DataFrame的末尾?例如:aaa___1、abc_2___2、xyzhw1___3等。
iaqfqrcu1#
我们可以使用contains来选择指定的列
contains
df <- data.frame(col1=c(3,4),a__2=c(1,2),col2=c(5,6)) df col1 a__2 col2 1 3 1 5 2 4 2 6 cbind(select(df,-contains("__")),select(df,contains("__"))) col1 col2 a__2 1 3 5 1 2 4 6 2
kknvjkwl2#
使用order和grepl
order
grepl
dat[order(grepl("___", colnames(dat)))] A B aaa___1 abc_2___2 xyzhw1___3 1 3 5 1 2 4 2 4 6 2 3 5 3 5 7 3 4 6 4 6 8 4 5 7
dat <- structure(list(aaa___1 = 1:4, abc_2___2 = 2:5, A = 3:6, xyzhw1___3 = 4:7, B = 5:8), class = "data.frame", row.names = c(NA, -4L))
2条答案
按热度按时间iaqfqrcu1#
我们可以使用
contains
来选择指定的列kknvjkwl2#
使用
order
和grepl
数据