1

我在 R 脚本中有这段代码,它的作用是从数据框(例如 4 列)中为每一行查找并计算具有最大值的列。但是当连续有关系时(比如两个或三个最大值),下面的代码只考虑第一个(不计算其他的)。即使行中有多个最大值(关系?),R中是否有任何方法可以计算具有最大值的列。

m_0 <- read.csv(file="Tests/myResults", head=FALSE, sep=",")

varb_m0 <- c(m0$ V4)

#create dataframe

myDataFrame <- data.frame(mode_0=varb_m0)

#find max
result <- apply(myDataFrame,1,which.max)

#factor it
result <- factor(result)

#print result
names(myDataFrame)[result]

summary(result)
4

1 回答 1

2

一个简单的方法是先创建一个函数:

all_max <- function(x) {which(x == max(x))}  #Index of each value that is maximum.

然后将其应用于您的数据框:

result <- apply(myDataFrame,1,all_max)

我认为其余的应该是相同的,尽管您没有提供任何数据来测试它。

于 2012-08-03T15:48:25.387 回答