You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中二元变量组合频率统计与排序实现方法

R统计二元变量所有唯一组合的出现频率并排序

基于你提供的示例数据,下面给出两种可直接运行的实现方案:


方案1:基础R实现(无需额外安装包)

# 生成示例数据
set.seed(5)
my_data<-data.frame("Slept Well"=sample(c(0,1),10,TRUE),
                    "Had Breakfast"=sample(c(0,1),10,TRUE),
                    "Worked out"=sample(c(0,1),10,TRUE),
                    "Meditated"=sample(c(0,1),10,TRUE))

# 统计所有唯一组合的出现频率
freq_table <- as.data.frame(table(my_data))
# 按频率从高到低排序
sorted_freq <- freq_table[order(-freq_table$Freq),]
# 可选:过滤掉从未出现的组合(table会默认枚举所有可能组合,未出现的频率为0)
sorted_freq <- sorted_freq[sorted_freq$Freq > 0,]

# 输出结果
print(sorted_freq)

方案2:tidyverse实现(代码更简洁易读)

# 未安装dplyr的话先运行:install.packages("dplyr")
library(dplyr)

# 生成示例数据
set.seed(5)
my_data<-data.frame("Slept Well"=sample(c(0,1),10,TRUE),
                    "Had Breakfast"=sample(c(0,1),10,TRUE),
                    "Worked out"=sample(c(0,1),10,TRUE),
                    "Meditated"=sample(c(0,1),10,TRUE))

# 直接统计所有组合频率并按降序排序,只会保留实际出现过的组合
sorted_freq <- my_data %>%
  count(across(everything()), name = "出现次数", sort = TRUE)

# 输出结果
print(sorted_freq)

结果使用说明

你需要查询的「睡眠良好=1、冥想=1、未吃早餐=0、未锻炼=0」这类组合的出现次数,直接在输出的结果表中匹配对应变量值的行,读取频率列数值即可。

内容的提问来源于stack exchange,提问作者Cinnamon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 20:18:04