📌  相关文章
📜  返回 R DataFrame 中每一行的最大值的列名(1)

📅  最后修改于: 2023-12-03 15:28:18.894000             🧑  作者: Mango

返回 R DataFrame 中每一行的最大值的列名

在R中,我们可以使用apply()函数来对数据框(DataFrame)的每一行或每一列进行操作。要返回每一行的最大值的列名,我们可以使用apply()函数并将MARGIN参数设置为1,这样我们可以对每一行进行操作。

# 创建一个数据框
df <- data.frame(a=c(1,2,3), b=c(4,5,6), c=c(7,8,9))

# 使用 apply() 函数返回每一行的最大值
max_cols <- apply(df, MARGIN=1, function(x) {names(df)[which(x==max(x))]})

在上面的代码中,我们使用apply()函数对数据框df的每一行进行操作,并对每一行使用匿名函数来获取最大值的列名。在函数内部,我们使用which()函数来获取最大值的索引,并使用names()函数将索引转换为列名。最终的结果将返回一个字符向量,包含每一行的最大值的列名。

我们可以使用sapply()函数来将结果转换为一个矩阵,并为每一行指定列名:

# 使用 sapply() 函数将结果转换为矩阵
max_cols <- sapply(max_cols, function(x) {as.character(x)})
rownames(max_cols) <- paste0("Row ", 1:nrow(df))
colnames(max_cols) <- "Max Column"

# 输出结果
max_cols

这将输出以下结果:

       Max Column
Row 1           c
Row 2           c
Row 3           c

在上面的代码中,我们使用sapply()函数将结果转换为矩阵,并使用rownames()colnames()函数为每一行和列指定名称。这将使结果更加易于阅读和理解。

以上就是如何在R中返回数据框中每一行的最大值的列名的方法。