查找具有两个精确预定义差异的对应字符串的同位素

2024-03-19

我有一个名称向量(求和公式),例如

"C 4 H 15 O 7"
"C 13 H 17 O 7"
"C 3 Cxiv 1 H 15 O 7"
"C 12 Cxiv 1 H 17 O 7"
"C 24 H 15 O 4"
"C 32 H 13 O 10"
"C 12 Cxiv 1 H 24 N 1"

在我的数据中,向量要长得多。那么我怎样才能找到一种通用的解决方案来查找以下不同之处的匹配:字符串中不是一个 C,而是一个 Cxiv。所有其他化合物 (H x,O x,N x...) 应相同。换句话说,我想找到相同的求和公式,其中一个 C 被 C14 同位素取代。因此,我想创建一个向量,如果找到匹配项,则该向量在包含 Cxiv 的字符串处变为 1,而在所有其他情况下变为 0。 因此,对于上面的示例,向量将如下所示:

vec
0 0 1 1 0 0 0

是否有捷径可寻? 非常感谢!


Using:

# split each string by space into separate elements in a list
l <- strsplit(x, ' ')

# check which list parts contain 'Cxiv'
i <- sapply(l, function(v) any(v == 'Cxiv'))

# for those that contain 'Cxiv' increase the second number with 1
# and remove the 'Cxiv 1' part
l[i] <- lapply(l[i], function(v) {
  v[2] <- as.character(as.numeric(v[2]) + 1);
  v[-c(which(v == 'Cxiv') + 0:1)]
})    

# check which are duplicates
as.integer(duplicated(l))

gives:

[1] 0 0 1 1 0 0 0

如果你想满足评论中所述的要求(当化学式带有Cxiv首先),您需要将最后一步更改为:

as.integer((duplicated(l) | duplicated(l, fromLast = TRUE)) & grepl('Cxiv',x))

在新的示例数据上进行测试(x2) 你会得到:

[1] 0 0 1 1 0 1 0 0

使用数据:

x <- c("C 4 H 15 O 7","C 13 H 17 O 7","C 3 Cxiv 1 H 15 O 7","C 12 Cxiv 1 H 17 O 7",
       "C 24 H 15 O 4","C 32 H 13 O 10","C 12 Cxiv 1 H 24 N 1")

新数据:

x2 <- c("C 4 H 15 O 7","C 13 H 17 O 7","C 3 Cxiv 1 H 15 O 7","C 12 Cxiv 1 H 17 O 7",
        "C 24 H 15 O 4","C 12 Cxiv 1 H 24 N 1","C 32 H 13 O 10","C 13 H 24 N 1")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找具有两个精确预定义差异的对应字符串的同位素 的相关文章

  • 在 Shiny 中显示反应式 htmlTable 表格

    我正在制作我的第一个 Shiny 应用程序 但找不到任何有关如何显示使用 htmlTable 包创建的表格的示例 我基本上想在按下按钮时创建一个表格并显示它 Shiny 显示 html 代码而不是表格 我不知道用什么替换服务器部分中的 re
  • R Shinydashboard 自定义 CSS 到 valueBox

    我一直在尝试将 valueBox 的颜色更改为自定义颜色 超出 validColors 中可用的颜色 但一直无法这样做 我知道有一种方法可以使用标签来包含自定义 CSS 但是我无法将它们放在正确的位置 ui lt dashboardPage
  • dplyr:连接中的 NSE (by)

    我很难弄清楚如何使用 dplyr left join 和 NSE 连接两个表 问题是我无法为 by 提供正确的值 我想我现在已经找到了解决方案 但感觉我正在以一种额外复杂的方式来做 因此 如果您知道更简单 更优雅的解决方案 请告诉我 这就是
  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 类型错误:“datetime.datetime”和“str”的实例之间不支持“>”

    我是 python 日期和时间类型的新手 我有一个日期值 date 2018 11 10 10 55 31 00 00 我需要检查该日期值是否超过 90 天 我试过 from datetime import datetime from da
  • 如何展平解析树并存储在字符串中以进行进一步的字符串操作 python nltk

    我正在尝试从树结构中获取扁平树 如下所示 我想将整个树放在一个字符串中 就像没有检测到坏树错误一样 S NP SBJ NP DT The JJ high JJ seven day PP IN of NP DT the CD 400 NNS
  • 使用点阵个性化 R 上显示的 X 轴值

    我收集了大量包含日期 客户端及其 NFS 使用情况的数据 我正在使用lattice R包进行绘图 正如对超级用户的建议 https superuser com questions 523195 plot custom log data on
  • 如何使用正则表达式将字符串分成相同字符的组?

    我有一个这样的字符串 var string AAAAAAABBBCCCCCCDD 并喜欢将字符串分割成这种格式的数组 same characters gt same group 使用正则表达式 Array AAAAAAA BBB CCCCC
  • 如何检测字符串中的非 ASCII 字符?

    如果我有一个 PHP 字符串 如何以有效的方式确定它是否至少包含一个非 ASCII 字符 我所说的非 ASCII 字符是指不属于该表的任何字符 http www asciitable com http www asciitable com
  • R - 基于列名称的子集

    我的数据框有超过 120 列 变量 我想根据列名称创建子集 例如 我想创建一个子集 其中列名称包含字符串 心情 这可能吗 我一般用 SubData lt myData grep whatIWant colnames myData 我很清楚
  • StatET调试工具

    我想我只是很密集 但我似乎无法弄清楚如何在 Eclipse 中的 R 中使用调试工具 StatET 插件 有人有关于这个主题的任何提示或教程吗 StatET 2 00 现在对高级 可视化调试提供实验性支持 需要 Eclipse 3 6 或
  • HTTR GET 新错误:SSL 证书问题:证书已过期

    我已经运行这段代码几个月了 没有出现任何问题 今天我突然开始在我的两台 AWS 服务器上收到以下错误消息 错误 curl curl fetch memory url handle handle SSL证书问题 证书已过期 当尝试运行以下代码
  • 自定义轴缩放后 ggplot2 缺少标签

    我正在尝试使用我的 x 轴应用自定义缩放ggplot2 and scales trans new 但是 当我这样做时 一些轴标签丢失了 有人可以帮我弄清楚为什么吗 Setup library tidyverse the data ds lt
  • 改变字符串颜色

    好的 这是我上一个问题的延续 但我有代码 private void btnTrans Click object sender EventArgs e var abrvStr inputBx Text foreach var kvp in d
  • 如何将参数从 Excel/VBA 传递到 Rstudio 中的脚本

    我正在尝试使用 Rstudio 从 VBA 打开 R 脚本 同时将参数传递给 R 脚本 然后我可以使用 commandArgs 访问该脚本 该问题与此处描述的问题非常相似 WScript Shell 用于运行路径中包含空格且来自 VBA 的
  • R 数据结构的运算效率

    我想知道是否有任何关于操作效率的文档R 特别是那些与数据操作相关的 例如 我认为向数据框添加列是有效的 因为我猜您只是向链接列表添加一个元素 我想添加行会更慢 因为向量保存在数组中C level你必须分配一个新的长度数组n 1并将所有元素复
  • 条件和分组 mutate dplyr

    假设我有以下每个抽屉库存增加的数据 gt socks year drawer nbr sock total 1990 1 2 1991 1 2 1990 2 3 1991 2 4 1990 3 2 1991 3 1 我想要一个二进制变量来标
  • R:改变堆积条形图的颜色

    library ggplot2 df2 lt data frame supp rep c VC OJ each 3 dose rep c D0 5 D1 D2 2 len c 6 8 15 33 4 2 10 29 5 head df2 g
  • 更改ggplot2中的字体

    曾几何时 我改变了我的ggplot2字体使用windowsFonts Times windowsFont TT Times New Roman 现在 我无法摆脱这一切 在尝试设置family in ggplot2 theme 当我用不同的字
  • 运算符“==”不能应用于“int”和“string”类型的操作数

    我正在编写一个程序 我想到了一个数字 然后计算机猜测了它 我一边尝试一边测试它 但我不断收到不应该出现的错误 错误是主题标题 我使用 Int Parse 来转换我的字符串 但我不知道为什么会收到错误 我知道它说 不能与整数一起使用 但我在网

随机推荐