【问题标题】:How to select the best rank according to quantitative values of another variable如何根据另一个变量的定量值选择最佳排名
【发布时间】:2016-07-18 22:31:38
【问题描述】:

我创建了一个如下所示的数据框:

# Dataframe
GeneID              TrID                PSI  Length Ranking  
ENSMUSG00000089809  ENSMUST00000146396  0.20 431801  3     
ENSMUSG00000089809  ENSMUST00000161516  0.23 354036  2  
ENSMUSG00000089809  ENSMUST00000161148  0.57   5601  1  
ENSMUSG00000044681  ENSMUST00000117098  0.05   4400  2  
ENSMUSG00000044681  ENSMUST00000141196  0.10   1118  1  
ENSMUSG00000044681  ENSMUST00000141601  0.75  44973  5  

现在我想为每个GeneId 选择具有较高PSI 值的TrID 和相应的Ranking。最后的输出是这样的:

# Desired Output Dataframe
GeneID             TrID               PSI Length Ranking     
ENSMUSG00000089809 ENSMUST00000161148 0.57  5601 1      
ENSMUSG00000044681 ENSMUST00000141601 0.75 44973 5      

之后,我将创建ranking 值的分布,并检查排名对应的PSI 值。我将对Length 值和TrID 值进行置换,以便控制分布。

【问题讨论】:

  • 嗨,我应该删除问题还是在stackoverflow中传递它?抱歉,我没有在这里找到这个特定的问题/问题交叉验证..

标签: r ranking permutation dataframe


【解决方案1】:

您可以使用 base R 并执行以下操作:

byGeneId = split(1:nrow(Dataframe), Dataframe$GeneId)
whichTopPsi = sapply(byGeneId, function(i) i[which.max(Dataframe[i,'PSI'])])
Dataframe[whichTopPsi,]

您也可以使用更通用的ddply

require(plyr)
ddply(Dataframe, "GeneId", function(d) d[which.max(d[,'PSI']),,drop=FALSE])

【讨论】:

    猜你喜欢
    • 2015-03-28
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多