R语言中统计dataframe各列大于等于指定阈值的次数如何实现
你可以通过以下两种常用方法实现需求:
方法1:基础R实现
直接用colSums对逻辑判断结果求和即可,逻辑值TRUE在求和时会被识别为1,FALSE识别为0:
# 示例数据 Data = data.frame( v1 = c(0.1, 0.2, 0.4, 0.7, 0.9), v2 = c(0.1, 0.12, 0.41, 0.72, 0.91), v3 = c(0.03, 0.13, 0.92, 0.61, 0.90)) # 统计每列≥0.61的次数并转成目标格式数据框 Result <- as.data.frame(t(colSums(Data >= 0.61)))
运行后Result输出完全匹配你给出的预期结果。
方法2:dplyr(tidyverse)语法实现
如果你习惯tidy系列语法,可以用summarise配合across遍历所有列统计:
library(dplyr) Result <- Data %>% summarise(across(everything(), ~ sum(.x >= 0.61)))
该方法直接返回符合要求的data.frame格式结果,无需额外转换。
内容的提问来源于stack exchange,提问作者Vinicius B. de S. Moreira
相关产品推荐
相关产品推荐

