我有这个数据框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
中的行显然没有正确排序。任何见解为什么?当然,我该如何解决它。
谢谢:))
答案 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)), ]