如何转换 R 中列匹配模式中的值

2024-04-28

我有这个数据框mydf。专栏nucleotide可以有A, T,G,C字母。我想更改字母A to T , C to G, G to C, and T to A,如果strand列是-。我该怎么做?

  mydf<- structure(list(seqnames = structure(c(1L, 1L, 1L, 1L), .Label = c("chr1", 
    "chr2", "chr3", "chr4", "chr5", "chr6", "chr7", "chr8", "chr9", 
    "chr10", "chr11", "chr12", "chr13", "chr14", "chr15", "chr16", 
    "chr17", "chr18", "chr19", "chr20", "chr21", "chr22", "chrX", 
    "chrY", "chrM"), class = "factor"), pos = c(115258748, 115258748, 
    115258748, 115258748), strand = structure(c(1L, 2L, 1L, 2L), .Label = c("+", 
    "-", "*"), class = "factor"), nucleotide = structure(c(2L, 2L, 
    2L, 2L), .Label = c("A", "C", "G", "T", "N", "=", "-"), class = "factor")), .Names = c("seqnames", 
    "pos", "strand", "nucleotide"), row.names = c(NA, 4L), class = "data.frame")

result

 seqnames       pos strand nucleotide
1     chr1 115258748      +          C
2     chr1 115258748      -          G
3     chr1 115258748      +          C
4     chr1 115258748      -          G

对于一对一的字符翻译,您可以使用chartr().

within(mydf, {
  nucleotide[strand == "-"] <- chartr("ACGT", "TGCA", nucleotide[strand == "-"])
})
#   seqnames       pos strand nucleotide
# 1     chr1 115258748      +          C
# 2     chr1 115258748      -          G
# 3     chr1 115258748      +          C
# 4     chr1 115258748      -          G

请注意,我使用了within()这里是为了避免写mydf$四次并保存不改变原始数据。您也可以编写以下内容,但请记住您将更改原始数据。

mydf$nucleotide[mydf$strand == "-"] <- 
    with(mydf, chartr("ACGT", "TGCA", nucleotide[strand == "-"]))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何转换 R 中列匹配模式中的值 的相关文章

随机推荐

  • 间歇性的“事件循环在 Future 完成之前停止。”

    我一直在为这个问题抓狂 有问题的代码是此处开源项目的一部分 aiosmtpd https github com pepoluan aiosmtpd 我的实际 FOSS 项目的分支 here https github com aio libs
  • Python 文档的 reStructuredText 有真正的替代品吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我很快就要开始一个开源 Python 项目 并且我试图提前决定如何编写我的文档字符串 显而易见的答案是
  • php ftp 检查文件夹是否存在总是返回创建文件夹错误

    有人可以告诉我这段代码中做错了什么吗 if id if is dir public html tem pasta path pics id echo pasta j existia destination file public html
  • jnius 1.1导入错误

    当我想导入 jnius 时出现如下错误 Traceback most recent call last File C Python27 lib site packages jnius init py line 12 in
  • 使用 oauth azure 数据工厂进行分页

    在 Azure 数据工厂内 我通过 REST 复制活动调用 microsoft graph 利用 REST 来获取服务的访问令牌 Graph api 最多返回 200 个结果 因此我有兴趣使用可以在源中创建的分页规则 在邮递员中我可以看到我
  • window.location 的 .NET MVC jQuery 相对路径

    我有一个非常简单的问题 但似乎无法弄清楚 由于 MVC 构建 URL 的方式 它包括所有路由信息 以下内容不起作用 我希望路径名仅返回虚拟目录路径 我所做的只是当用户从下拉列表中选择 ID 时重定向到不同的路由 document ready
  • axios 拦截器内的 useContext

    我不明白为什么我的 useContext 没有在这个函数中被调用 import useContext from react import MyContext from contexts MyContext js import axios f
  • 使用 Node.js 就地流式传输和转换文件

    我想做这样的事情 var fs require fs var through require through var file path to file json var input fs createReadStream file utf
  • 如何将行为设置为投票而不需要用户登录?

    我试图允许用户无需登录 注册即可对线程进行投票 以提高用户参与度 我该怎么做呢 目前 我当前的流程是将投票与访问者的 IP 地址联系起来 以防止多次投票 但另一个问题是 request remote ip 没有为我提供正确的 IP 我在学校
  • 我如何获得 github actions runner 令牌

    我想在工作流程中创建一个虚拟机并设置为自托管运行程序 目前 阻碍我的是缺乏为我提供 Runner Token 的 API 如果存在 我可以创建该实例并将其注册为运行程序 以便能够在下一个作业中使用它 现在有人有办法获得跑步者令牌吗 延迟更新
  • JTable 如何在行之间添加行

    我之前一直在寻找这个问题很长一段时间 但我找不到任何关于这个问题或主题的问题 我假设这可能是不可能做到的 尽管这看起来很奇怪 因为该功能很有用 我希望在有 3 行的情况下 不是在末尾添加另一行 而是在第 1 行之后添加 这有可能吗 请不要提
  • BigQuery 中的 EXP() 返回浮点错误

    我有以下查询 SELECT EXP col FROM project dataset tablename Where col is FLOAT 但是 我收到此错误 Error Floating point error in function
  • sizeof() 函数如何用于 C 中的结构?

    结构体定义如下 typedef struct Sample int test char strtest Sample 在Main Function中 我将结构体称为Sizeof sizeof struct Sample 我听说结构体上 si
  • 如何制作包含DLL文件的JAR文件?

    我购买了一个第三方Java库 其中包括一个JAR文件和两个DLL文件 我编写了自己的 Java 程序来调用第三方 JAR 文件 现在我的问题是如何将我的所有代码打包到一个 JAR 文件中 其中包含我的所有代码以及第三方 JAR 和 DLL
  • 使用 AffineTransform 将形状缩放/转换为给定矩形

    我正在尝试缩放 翻译 java awt Shape with 仿射变换为了将其绘制在定义的边界矩形中 此外 我想在具有 的绘图区域中绘制它zoom 范围 我尝试了 AffineTransform 的各种串联 但找不到正确的序列 例如 以下解
  • 在没有 Webpack 的情况下使用模块“child_process”

    我正在使用 Webpack 来捆绑依赖项 其中之一是电子邮件服务postmark 该服务依赖于称为child process显然是随节点一起提供的 问题是 当我尝试运行 webpack 来捆绑我的应用程序时 它会抱怨 找不到模块 错误 无法
  • 为什么使用 System.Threading.Interlocked.Decrement 而不是减号?

    我将一些 C 代码转换为 vb net converter telerik com 将其转换为 i 进入这个 System Math Max System Threading Interlocked Decrement i i 1 所有的花
  • 我可以在 React Native 中需要一个专门用于 iOS 的模块吗?

    我目前正在使用react native safari view https github com naoufal react native safari view我的 React Native 项目中用于在 iOS 中显示 Web 视图的模
  • 如何让一个不可见的透明按钮起作用?

    查看 Unity 论坛和问答网站中的一些答案 如何制作隐形按钮的答案不起作用 因为删除与按钮关联的图像会使其不起作用 如何解决这个问题并保持不可见属性 同时允许按钮实际工作 这是 Unity 的怪异之处之一 100 的现实世界项目都需要这个
  • 如何转换 R 中列匹配模式中的值

    我有这个数据框mydf 专栏nucleotide可以有A T G C字母 我想更改字母A to T C to G G to C and T to A 如果strand列是 我该怎么做 mydf lt structure list seqna