根据列到达最大值的列来输入df行

时间:2016-03-24 16:44:52

标签: r

我很难确定如何将我的df子集化以拉出在同一列中达到最大值的所有行。

ID <- c(1,2,3,4,5,6)  
X0 <- c(1,2,3,4,5,6,7,8,9,10)
X30 <- c(10,9,8,7,6,5,4,3,2,1)  
X60 <- c(9,10,8,7,6,5,4,3,2,1)  
X90 <- c(8,9,10,7,6,5,4,3,2,1)  
X120 <- c(7,8,9,10,6,5,4,3,2,1)  
mydata <- data.frame(ID, X0, X30, X60, X90, X120)

对于上面的数据集,这里是输出

   ID X0 X30 X60 X90 X120  
1  1  1  10   9   8    7
2  2  2   9  10   9    8
3  3  3   8   8  10    9
4  4  4   7   7   7   10
5  5  5   6   6   6    6
6  6  6   5   5   5    5

我尝试的第一件事就是安排数据

order <- arrange(mydata, X0, X30, X60, X90, X120)

输出:

    ID X0 X30 X60 X90 X120
1   1  1  10   9   8    7
2   2  2   9  10   9    8
3   3  3   8   8  10    9
4   4  4   7   7   7   10
5   5  5   6   6   6    6
6   6  6   5   5   5    5

这命令我更大的df所以我可以创建一个这样的热图。

enter image description here

我想将我的df子集化并拉出在X0,X.5等处达到峰值的任何基因(行)。是否有人知道这样做的方法?

我知道这是一个措辞严厉的问题,但是我很难生成一个可行的例子。但是,如果有人能提供帮助,我会非常感激。

1 个答案:

答案 0 :(得分:0)

我使用

工作
max.col(mydata[2:9], "first")

并将其与数据框对齐。