You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于已知字符向量统计数据框中序列的字符数量

如何基于已知字符向量统计数据框中序列的字符数量?

嘿,我来帮你搞定这个字符统计的问题!先看你提供的这个包含蛋白质序列的数据框,咱们用tidyverse工具包就能轻松实现需求。

首先先还原你的数据框:

library(tidyverse)
dat <- structure(list( 
  fasta_header = "sp|A0A0A0MT76|LJ01_HUMAN", 
  sequence = "PSRLLLQPSPQRADPRCWPRGFWSEPQSLCYVFGTGTKVTVL", 
  type = "human", 
  seq_len = 42L
), .Names = c( "fasta_header","sequence", "type", "seq_len"), row.names = c(NA, -1L), class = c("tbl_df","tbl", "data.frame"))

接下来分两种常见场景来处理,你可以根据自己的实际需求选择:

场景1:统计目标字符的总出现次数

假设你有一个已知的目标字符向量(比如c("P", "R", "L")),想要统计这些字符在序列里的总出现次数,可以用str_count()配合str_c()来实现:

# 定义你的目标字符向量,可按需修改
target_chars <- c("P", "R", "L")

# 统计总次数并新增到数据框中
dat <- dat %>%
  mutate(total_target_chars = str_count(sequence, str_c(target_chars, collapse = "|")))

# 查看结果
dat

运行后数据框会新增一列total_target_chars,直接显示所有目标字符的总出现次数。

场景2:分别统计每个目标字符的出现次数

如果需要单独统计每个字符的出现次数,我们可以用map_dfc()遍历目标字符向量,为每个字符生成对应的统计列:

# 定义你的目标字符向量,可按需修改
target_chars <- c("P", "R", "L")

# 为每个字符添加单独的统计列
dat <- dat %>%
  bind_cols(
    map_dfc(target_chars, ~ tibble(!!.x := str_count(sequence, .x)))
  )

# 查看结果
dat

这样操作后,数据框会新增P、R、L三列,分别对应每个字符在序列中的出现次数。

内容的提问来源于stack exchange,提问作者littleworth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:06:44