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

R语言一行无循环代码统计数据框多列字母出现频率

这行无循环的R代码(基于Base R,无需额外加载包)就能直接生成你要的碱基计数结果,自动忽略NA值:

data.frame(base = c("A", "C", "G", "T"), t(sapply(dfnew, function(col) table(factor(col, levels = c("A", "C", "G", "T")), useNA = "no"))))

如果平时习惯用tidyverse工具链,也可以用这一行代码:

library(tidyverse)
dfnew %>% pivot_longer(everything()) %>% drop_na(value) %>% count(name, value) %>% pivot_wider(names_from = name, values_from = n, values_fill = 0) %>% rename(base = value) %>% select(base, C1:C6)

简单解释下逻辑:

  • Base R版本:通过sapply遍历每一列,把列内元素转为指定水平的因子(保证A/C/G/T四个类别都被统计),用table计数时排除NA,最后转置结果并和碱基名称组合成数据框。
  • Tidyverse版本:先将宽格式数据转为长格式,过滤掉NA,按列名和碱基分组统计数量,再转回宽格式并填充缺失的计数为0,最后调整列名和顺序得到目标格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:48:44