📅  最后修改于: 2023-12-03 15:28:18.894000             🧑  作者: Mango
在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中返回数据框中每一行的最大值的列名的方法。