可以使用apply函数配合which.max函数来实现该功能。具体步骤如下:

  1. 创建一个新的列'group',并将其初始化为NA。
  2. 使用apply函数,对df的每一行进行操作。
  3. 在每一行中,使用which.max函数找到最大值所在列的索引。
  4. 将该索引转换为列名,并将其赋值给'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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录