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

R语言如何统计氨基酸序列重复次数并定位对应原始变量

解决方案

你可以在现有代码的基础上,通过遍历匹配每个序列对应的来源列名实现需求,以下提供两种常用实现方式:


方法1:基础R实现(可复用你已经计算好的freq结果)

在你现有代码的末尾添加以下代码即可:

# 先统一列名,匹配你示例的输出格式
colnames(freq) <- c("Clones", "Freq")
clones_df <- as.data.frame(clones, stringsAsFactors = FALSE)

# 为每个序列匹配来源变量
freq$Variable <- sapply(freq$Clones, function(seq) {
  # 筛选出包含当前序列的变量名,自动跳过补位的NA值
  source_vars <- names(clones_df)[sapply(clones_df, function(col) seq %in% col[!is.na(col)])]
  paste(source_vars, collapse = ",")
})

# 查看最终结果
freq

方法2:tidyverse实现(语法更直观,一步出结果)

如果你习惯使用tidyverse系列包,可以用长表转换的方式直接生成目标结果:

library(tidyverse)

# 将宽表转为长表,剔除补位NA后分组统计
result <- as.data.frame(clones, stringsAsFactors = FALSE) %>%
  pivot_longer(cols = everything(), names_to = "Variable", values_to = "Clones") %>%
  drop_na(Clones) %>%
  group_by(Clones) %>%
  summarise(
    Freq = n(),
    Variable = paste(unique(Variable), collapse = ",")
  )

# 查看最终结果
result

两种方法输出的结果都完全匹配你期望的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 03:42:04