A:找到每行具有最大值的列


您可以使用以下语法查找 R 中数据帧的每行具有最大值的列:

 df$max_col <- colnames(df)[max. col (df, ties.method =' first ')]

请注意, tie.method=’first’参数指定如果给定行中存在多个具有最大值的列,则应返回第一个最大列。

如果您想返回随机最大列或最后一个最大列,则可以为此参数提供的其他值包括randomlast

以下示例展示了如何在实践中使用此语法。

示例:在 R 中查找每行具有最大值的列

假设我们在 R 中有以下数据框,其中包含六名不同篮球运动员在三场比赛中得分的信息:

 #create data frame
df <- data. frame (game1=c(23, 20, 14, 12, 19, 15),
                 game2=c(9, 10, 11, 13, 13, 15),
                 game3=c(29, 11, 22, 19, 14, 15))

#view data frame
df

  game1 game2 game3
1 23 9 29
2 20 10 11
3 14 11 22
4 12 13 19
5 19 13 14
6 15 15 15

假设我们要创建一个新列,其中包含数据帧每行中具有最大值的列的名称。

我们可以使用以下语法来做到这一点:

 #create new column that contains column with max value for each row
df$max_col <- colnames(df)[max. col (df, ties.method =' first ')]

#view updated data frame
df

  game1 game2 game3 max_col
1 23 9 29 game3
2 20 10 11 game1
3 14 11 22 game3
4 12 13 19 game3
5 19 13 14 game1
6 15 15 15 game1

名为max_col的新列包含每行中具有最大值的列的名称。

例如:

  • 在第一行中, game3包含最大值。
  • 在第二行中, game1包含最大值。
  • 在第三行中, game3包含最大值。

等等。

请注意,最后一行中的每一列都具有相同的值。

由于我们在max.col()函数中指定了tie.method=’first’ ,因此代码返回game1作为具有最大值的列,因为它是第一个最大列。

其他资源

以下教程解释了如何在 R 中执行其他常见操作:

A:如何跨多列查找唯一行
A:如何查找包含所有缺失值的列
A:如何查找列中的唯一值

添加评论

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