r - A,C,G,T上的R数据框列顺序
问题描述
我在 R 中有一个这样的数据框:
V1 V2
1 3289 AAAAA
2 2608 AAAAC
3 1598 AAAAG
4 2857 AAAAT
5 2211 AAACA
6 1349 AAACC
但我希望这个数据框和后续图的顺序(其中 V2 是 x 轴)不是基于 V2 排序的字母顺序,而是基于排序顺序为 A、T、G、C 的 V2 排序。对于例如上面的订单我想是:
V1 V2
1 3289 AAAAA
2 2857 AAAAT
3 1598 AAAAG
4 2608 AAAAC
5 2211 AAACA
6 1349 AAACC
解决方案
当您考虑它时,如果您将所有 T 替换为 B,并将所有 C 替换为 Z,那么您可以按字母顺序对向量进行排序。之后,您将所有 B 切换回 T 并将 Z 切换回 C:您现在拥有按 A、T、G、C 排序的序列。
一种更简单的方法是df1
按替换的 ABGZ 排序字符串进行排序:
df1[order(gsub("T", "B", gsub("C", "Z", df1$V2))),]
V1 V2
1 3289 AAAAA
2 2857 AAAAT
3 1598 AAAAG
4 2608 AAAAC
5 2211 AAACA
6 1349 AAACC
推荐阅读
- bash - 如果当前没有运行,我如何只运行 ffmpeg
- reactjs - 如何将子组件连接到 redux 连接组件?
- php - 为什么 update 或 save() 在 laravel 5.8 中不起作用?
- postgresql - 如何使用触发器在表中实现时间约束?我必须一次修改两行
- java - Spring boot 配置数据源失败:未指定“url”属性
- c# - LINQ 选择返回 Null
- sql - 以 AB_ 为前缀的 ID 字段(示例:AB_00yyhhgdbdbd)
- javascript - 任何人都知道为什么这个文件记录在本地主机上而不是在 github 服务器上?
- reactjs - 通用检测 React 应用程序
- c# - C# 控制台应用程序意外关闭