如何用R语言统计向量中指定数值集合的出现次数
解决R语言中统计指定数值集合总出现次数的问题
嘿,我来帮你搞定这个统计问题!针对你需求的场景,我给你分享两种实用的解法,其中第二种更是简洁高效的最优选择。
方法一:利用频数表统计求和
这种方法先统计向量中所有元素的出现频次,再提取目标数值的频次相加,适合需要同时查看所有元素频次的场景:
# 定义示例向量和目标数值集合 my_vector <- c(1,2,3,4,4,5,6,5,7,8,9,10,5) target_values <- c(5,4) # 生成频数表并计算目标数值的总次数 freq_table <- table(my_vector) # 注意table的名称是字符型,所以需要把目标数值转成字符索引 total_count <- sum(freq_table[as.character(target_values)]) # 输出结果 total_count # 会返回5,符合预期
方法二:向量化筛选求和(最优解法)
这个方法利用R的向量化特性,直接筛选出属于目标集合的元素并统计数量,代码简洁且运行效率更高,尤其适合处理大向量:
# 同样定义向量和目标集合 my_vector <- c(1,2,3,4,4,5,6,5,7,8,9,10,5) target_values <- c(5,4) # 一步到位计算总次数 total_count <- sum(my_vector %in% target_values) total_count # 输出结果5
原理说明
my_vector %in% target_values会返回一个与原向量长度相同的逻辑向量,其中每个元素为TRUE表示对应位置的元素属于目标集合,FALSE则不属于。而sum()函数会自动将TRUE视为1,FALSE视为0,求和后就是目标数值的总出现次数。
内容的提问来源于stack exchange,提问作者Sean W
相关产品推荐
相关产品推荐

