我有以下df:
A1 <- c(1,2,5)
B1 <- c(6,2,4)
C1 <- c(4,1,3)
A2 <- c(3,8,9)
B2 <- c(1,2,3)
C2 <- c(2,6,9)
df_1 <- data.frame(A1,A2,B1,B2,C1,C2)
我如何重新排列下面的列?
df_2 <- data.frame(A1,B1,C1,A2,B2,C2)
uj5u.com熱心網友回復:
我們可以parse_number用來提取名稱和順序
library(dplyr)
df1_1 <- df_1 %>%
select(order(readr::parse_number(names(.)), names(.))
-輸出
A1 B1 C1 A2 B2 C2
1 1 6 4 3 1 2
2 2 2 1 8 2 6
3 5 4 3 9 3 9
或使用base R- 獲取數字部分sub,并order分別首先獲取數字
df_1[order(as.integer(sub("\\D ", "", names(df_1))), names(df_1))]
A1 B1 C1 A2 B2 C2
1 1 6 4 3 1 2
2 2 2 1 8 2 6
3 5 4 3 9 3 9
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/467219.html
下一篇:使用loc分配的熊貓
