我有染色體名稱的矢量排序染色體名字
q<-c("1","10","11","12","13","14","15","16","17",
"18","19","20","21","22","2","3","4","5","6",
"7","8","9","X","Y","M")
我想作爲
q<-c("1","2","3","4","5","6","7","8","9","10","11",
"12","13","14","15","16","17","18","19","20",
"21","22","X","Y","M")
我試圖讓我自己爲了
chrOrder <-c((1:22),"X","Y","M")
和使用對它們進行排序它就像
factor(cbind(q),levels=chrOrder)
但我仍然無法得到它。
編輯..... 我有類似的senario,但略顯先進。我有三列的數據幀,名稱,染色體,開始
df <-data.frame(name =c("a","a","a","b","b","b"), chrom = c(1,2,10,1,3,"X"), start=c(100,200,300,500,300,200))
我需要通過名稱,然後染色體和啓動第一排序。 的結果應該是像
name chrom start
a 1 100
a 10 300
a 2 200
b 1 500
b 3 300
b X 200
我不知道如何使用以下chrOrder:
indata <- df[do.call(order,df[,c(name, chrom, start)]),];
爲什麼不直接使用'chrOrder'?你爲什麼期望'因素'排序你的向量?同樣,'cbind'在這裏沒有效果。 –
我對編輯後的問題期望的結果感到困惑。第三排不在第二排之前是否有錯誤? – blakeoft
它首先按「姓名」排序,然後按「chrom」排序。數字的排序不是自然而然的。它就像1,10,100,2,200,22,299,300 – user1631306