A:找到每行具有最大值的列
您可以使用以下语法查找 R 中数据帧的每行具有最大值的列:
df$max_col <- colnames(df)[max. col (df, ties.method =' first ')]
请注意, tie.method=’first’参数指定如果给定行中存在多个具有最大值的列,则应返回第一个最大列。
如果您想返回随机最大列或最后一个最大列,则可以为此参数提供的其他值包括random和last 。
以下示例展示了如何在实践中使用此语法。
示例:在 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 中执行其他常见操作: