2012-08-03 26 views
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) 
+0

你可以給一個'myDataFrame'的例子,也許用'dput()'? – Andrew 2012-08-03 15:13:41

+0

是的,這是我做的方式 – FranXh 2012-08-03 15:21:32

+0

這不是我們可以重現的例子。如果你做'dput(myDataFrame)'(或'dput(head(myDataFrame))'),我們可以。 – 2012-08-03 15:25:38

回答

2

一個簡單的方法來做到這將是使一個功能第一:

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

然後將其應用到您的數據框中:

result <- apply(myDataFrame,1,all_max) 

我認爲其餘的應該是一樣的,儘管你沒有提供任何數據來測試它。

+0

我會嘗試一下,但我相信Excel/Libre Calc更易於使用和管理,因此我將嘗試使用它。雖然謝謝:) – FranXh 2012-08-04 03:08:00