2017-06-23 76 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