如何在R中按行统计列中字母出现次数及小写字母计数
R语言序列字母统计解决方案
构造示例数据
先还原你的输入数据:
df <- data.frame( 样本 = c("F1", "F2"), 序列 = c("VALILQNVDLPN", "GLAEDIENEVVQITWnR"), stringsAsFactors = FALSE )
1. 统计所有序列中"N"(不区分大小写)的总出现次数
推荐使用stringr包实现,简洁高效:
library(stringr) # 统一转为小写后统计"n"的总次数 total_N <- sum(str_count(tolower(df$序列), "n")) cat("所有序列中N的总出现次数:", total_N, "\n")
运行后输出结果:所有序列中N的总出现次数: 4
2. 统计每个样本的小写字母出现次数
同样用stringr包,通过正则表达式匹配小写字母:
# 为数据框新增列存储每个样本的小写字母次数 df$小写字母次数 <- str_count(df$序列, "[a-z]") print(df)
输出结果:
样本 序列 小写字母次数 1 F1 VALILQNVDLPN 0 2 F2 GLAEDIENEVVQITWnR 1
基础R实现(无需额外包)
如果不想依赖第三方包,可用基础R的gregexpr函数:
# 统计总N次数 total_N_base <- sum(sapply(gregexpr("[Nn]", df$序列), function(x) sum(x != -1))) cat("所有序列中N的总出现次数(基础R):", total_N_base, "\n") # 统计每个样本小写字母次数 df$小写字母次数_base <- sapply(gregexpr("[a-z]", df$序列), function(x) sum(x != -1)) print(df)
内容的提问来源于stack exchange,提问作者Maria Faleeva
相关产品推荐
相关产品推荐

