首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我试着用细胞带来分类染色体畸变。

我试着用细胞带来分类染色体畸变。
EN

Stack Overflow用户
提问于 2015-06-26 19:35:45
回答 3查看 132关注 0票数 1

我有以下data.frame“测试”:

代码语言:javascript
复制
Cytoband
9p 
1q
10p
22p
2q

我想要得到:

代码语言:javascript
复制
Cytoband
1q
2q
9p
10p
22p

这是我的代码:

代码语言:javascript
复制
indices <- order(test$Cytoband, decreasing = FALSE)
test <- test[indices,]

但我明白:

代码语言:javascript
复制
10p
1q
22p
2q
9p

有简单的修改吗?谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-26 19:54:58

您也可以尝试使用mixedsortmixedorder

代码语言:javascript
复制
library(gtools)
out = data.frame(Cytoband = mixedsort(dat$Cytoband))

#> out
#  Cytoband
#1       1q
#2       2q
#3       9p
#4      10p
#5      22p

使用mixedorder

代码语言:javascript
复制
dat[mixedorder(as.character(dat$Cytoband)),]
票数 2
EN

Stack Overflow用户

发布于 2015-06-26 19:42:40

代码语言:javascript
复制
x = c("9p","1q","10p","22p","2q")

y = x[order(as.numeric(gsub("\\D","",x)))]
y

[1] "1q"  "2q"  "9p"  "10p" "22p"
票数 5
EN

Stack Overflow用户

发布于 2015-06-26 19:44:47

代码语言:javascript
复制
test[order(as.numeric(gsub('(\\d+)[a-z]*', '\\1', test[,1]))),, drop=F]
  Cytoband
2       1q
5       2q
1       9p
3      10p
4      22p
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31080873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档