2017-06-23 23 views
1

我有一張有n列的表格。我想在每列中找到最大值,然後從同一行中的CAG列中返回值。我已經設法爲A01欄做到這一點,但是你能幫助我跨所有欄目進行申請嗎?對多列應用計算

#My data frame 
data <- data.frame(CAG = c(13, 14, 15), A01 = c(6485,35,132), A02 = c(0,42,56)) 

#My function# applied to work with column A01 
result <- data$CAG[data$'A01' == max(data$'A01')] 
+0

的[每一行,返回最大值的列名]可能的複製(https://stackoverflow.com/questions/17735859/for-each-row-return-the-column-name-最大的值) – lebelinoz

回答

1

想要which.max。將其應用於所有使用sapply的列。

> data[sapply(data[2:ncol(data)], which.max), ]$CAG 
[1] 13 15 
+0

非常感謝你,這完美的作品。非常整潔,簡單! – Mike

+0

一個小變體是'data $ CAG [sapply(data [-1],which.max),]'。 – lmo