У меня есть большой файл данных пациента, который я хочу ранжировать на основе значений столбцов (без изменения порядка данных).Например
patient<-c("a", "b", "c", "d", "e","f")
gene1<-c(500, 490, 500, 750, 550, 500)
gene2<-c(200, 470, 1000, 50, 720, 1100)
x<-data.frame(patient,gene1,gene2)
x
patient gene1 gene2
1 a 500 200
2 b 490 470
3 c 500 1000
4 d 750 50
5 e 550 720
6 f 500 1100
Я хочу получить что-то вроде этого ...
x
patient gene1 gene2
1 a 2 2
2 b 1 3
3 c 6 5
4 d 5 1
5 e 4 4
6 f 3 6
Я могу сделать это для отдельных столбцов, используя что-то похожее на приведенный ниже код, но у меня есть тысячистолбцы данных о пациентах иметь дело, так что это нереально.
x <- read.csv("data.csv", row.names = "Patient")
order.scores<-order(x$gene1,x)
x$rank <- NA
x$rank[order.scores] <- 1:nrow(x)
Кто-нибудь может предложить подходящую функцию?Спасибо!