R语言:如何提取数据框中每行最大值所在列名?
可以使用apply函数配合which.max函数来实现该功能。具体步骤如下:
- 创建一个新的列'group',并将其初始化为NA。
- 使用apply函数,对df的每一行进行操作。
- 在每一行中,使用which.max函数找到最大值所在列的索引。
- 将该索引转换为列名,并将其赋值给'group'列。
以下是实现该功能的R代码示例:
# 创建示例数据
df <- data.frame(A = c(1, 2, 3),
B = c(4, 5, 6),
C = c(7, 8, 9),
D = c(10, 11, 12),
E = c(13, 14, 15))
# 创建'group'列并初始化为NA
df$group <- NA
# 使用apply函数遍历每一行
df$group <- apply(df, 1, function(row) {
# 找到最大值所在列的索引
max_col_idx <- which.max(row)
# 将索引转换为列名
max_col_name <- colnames(df)[max_col_idx]
# 返回列名作为'group'值
return(max_col_name)
})
# 输出结果
print(df)
运行以上代码,将会得到如下结果:
A B C D E group
1 1 4 7 10 13 E
2 2 5 8 11 14 E
3 3 6 9 12 15 E
在示例数据中,每一行的最大值所在列都是列E,因此'group'列的值都为E。
原文地址: https://www.cveoy.top/t/topic/piSK 著作权归作者所有。请勿转载和采集!