统计向量中连续出现的最小值的数量
统计R向量中最小值的出现次数
嘿,这个需求其实很简单,在R里有几种直接的方法可以实现,咱们一步步来:
基础实现方法
核心思路就是先找到向量的最小值,再统计等于该值的元素个数。针对你的示例:
a <- c(1,1,1,2,2) # 第一步:获取向量的最小值 min_value <- min(a) # 第二步:统计等于最小值的元素数量 count_min <- sum(a == min_value) # 输出结果 count_min # 会返回3,和你期望的一致
一行简化写法
如果想更简洁,直接把两步合并成一行就行,代码更紧凑:
a <- c(1,1,1,2,2) sum(a == min(a)) # 同样返回3
这里a == min(a)会生成一个逻辑向量(每个元素为TRUE或FALSE),而sum()函数会自动把TRUE当作1、FALSE当作0来求和,刚好就是最小值的出现次数。
处理含NA值的情况
如果你的向量里可能存在缺失值(NA),记得给min()和sum()加上na.rm=TRUE参数,避免因为NA导致结果出错:
b <- c(1,1,NA,2,2) sum(b == min(b, na.rm=TRUE), na.rm=TRUE) # 返回2
内容的提问来源于stack exchange,提问作者Mattias Holm
相关产品推荐
相关产品推荐

