在R中按列排序数据

时间:2013-11-25 19:53:04

标签: r

我有这个数据框file,其中包含有关白血病患者基因表达的生物学数据。

  

头(文件)

     patient       expression Survival
   1     152          0.42900    Alive
   2      18          1.04060    Alive
   3     125          1.30100    Alive
   4      84          1.33410    Alive
   5     156          1.34644    Alive
   6     132          1.40710    Alive 

我正在尝试按升序对第一列file$patient进行排序。 我尝试过以下方法: file<- file[with(file, order(as.numeric(new$patient))), ] 但我继续得到以下内容:

  

头(文件)

      patient       expression Survival
  77        1          1.33185     Dead
  75       10          1.28373     Dead
  143     100          2.24707     Dead
  161     101          2.50961     Dead
  139     102          2.23256     Dead
  71      103          1.16000     Dead

正如您可以清楚地看到的那样,file$patient中的行显然没有正确排序。任何见解为什么?当然,我该如何解决它。 谢谢:))

2 个答案:

答案 0 :(得分:1)

从评论中复制,以回答并解决OP的问题

file$patient似乎是factor,当您执行as.numeric时,它只是将其更改为数字级别,请尝试as.numeric(as.character(file$patient))

答案 1 :(得分:0)

除非我误解你的问题,否则看起来对我不对?由于您重新排序了data.frame,“rownames”将指向它们在原始数据集中的位置。你可以使用

    rownames(file) <- NULL

要照顾好这个。

编辑:我现在更清楚地看到错误了。此外,您不需要在案例中使用with。这应该有效:

file <- file[order(as.numeric(as.character(file$patient)), ]