如何在 r 中重新排列列
通常,您可能希望重新排列 R 数据框中的列。
幸运的是,使用dplyr包中的select()函数可以轻松做到这一点。
library (dplyr)
本教程展示了如何使用以下数据框在实践中使用此函数的几个示例:
#create data frame df <- data.frame(player = c('a', 'b', 'c', 'd', 'e'), position = c('G', 'F', 'F', 'G', 'G'), points = c(12, 15, 19, 22, 32), rebounds = c(5, 7, 7, 12, 11)) #view data frame df player position points rebounds 1 to G 12 5 2 b F 15 7 3 c F 19 7 4 d G 22 12 5th G 32 11
示例 1:将列移动到第一个位置
以下代码显示如何将数据框中的特定列移动到第一个位置:
#move column 'points' to first position df %>% select(points, everything() ) points player position rebounds 1 12 a G 5 2 15 b F 7 3 19 c F 7 4 22 d G 12 5 32nd G 11
此代码告诉 dplyr 首先选择点列,然后包含点后面的所有其他列。
示例 2:将列移动到最后一个位置
以下代码显示如何将数据框中的特定列移动到最后一个位置:
#move column 'points' to last position
df %>% select(-points, points)
player position rebounds points
1 to G 5 12
2 b F 7 15
3c F 7 19
4 d G 12 22
5th G 11 32
此代码告诉 dplyr 选择除点列之外的所有列,然后再次选择点列。这具有将点列移动到数据框中的最后位置的效果。
示例 3:重新排列多列
以下代码显示如何按特定顺序一次重新排列多个列:
#change all column names to uppercase
df %>% select(rebounds, position, points, player)
rebounds position points player
1 5 G 12 a
2 7 F 15 b
3 7 F 19 c
4 12 G 22 d
5 11 G 32 e
示例 4:按字母顺序重新排列列
以下代码显示了如何按字母顺序对列进行排序:
#order columns alphabetically
df %>% select(order(colnames(.)))
player points position rebounds
1 to 12 G 5
2 b 15 F 7
3 c 19 F 7
4 d 22 G 12
5 th 32 G 11
示例 5:反转列的顺序
以下代码显示了如何反转数据框中列的顺序:
#reverse column order df %>% select(rebounds:player, everything() ) rebound points position player 1 5 12 G a 2 7 15 F b 3 7 19 F c 4 12 22 L d 5 11 32 G e
注意:您可以在此处找到select()函数的完整文档。
其他资源
以下教程解释了如何在 dplyr 中执行其他常见操作: