如何在 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 中执行其他常见操作:

如何使用 dplyr 按索引选择列
如何使用 dplyr 按名称选择列
如何使用 dplyr 将列添加到数据框

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注