如何计算R语言向量中各元素的出现占比?
计算R语言向量中元素的出现占比
基础R实现(无需额外包)
直接利用table()统计元素频次,再除以向量总长度得到占比,最后转换为目标数据框格式:
InputVector <- c(1,1,1,1,1,2,2,2,3,3) # 统计频次并计算占比 freq_table <- table(InputVector) percentile_values <- as.numeric(freq_table) / length(InputVector) # 转换为预期的data.frame格式 result <- data.frame( Value = as.numeric(names(freq_table)), Percentile = percentile_values ) # 查看结果 result
运行后输出与预期完全一致:
Value Percentile 1 1 0.5 2 2 0.3 3 3 0.2
tidyverse(dplyr)实现
如果习惯tidyverse风格的代码,用dplyr可以更简洁完成:
library(dplyr) InputVector %>% as_tibble() %>% count(Value = value) %>% mutate(Percentile = n / sum(n)) %>% select(-n)
这段代码将向量转为tibble、统计元素出现次数、计算占比后移除计数列,最终得到目标结果。
内容的提问来源于stack exchange,提问作者locket
相关产品推荐
相关产品推荐

