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

R语言:生成数据框中org与Abx组合的0/1统计表格求助

解决方法

先模拟符合你描述的数据结构(如果你的数据列名不同,自行调整):

library(tidyverse)

# 模拟包含微生物、抗生素类别、结果(0/1)的数据框
set.seed(123)
df <- tibble(
  org = sample(c("acito", "Hemop", "Ecoli", "Klebsi"), 100, replace = TRUE),
  `Abx. class` = sample(c("Penicillins", "Aminoglycosides", "Trimethoprim", "Carbapenems"), 100, replace = TRUE),
  result = sample(c(0, 1), 100, replace = TRUE)
)

步骤1:生成所有微生物-抗生素类别组合

用tidyr::crossing生成所有唯一的组合,确保没有遗漏:

all_combinations <- df %>%
  distinct(org, `Abx. class`) %>%
  crossing(org, `Abx. class`)

步骤2:统计每个组合的0/1出现次数

结合dplyr::count和tidyr::pivot_wider完成统计,并用right_join确保所有组合都被纳入:

final_table <- df %>%
  # 统计原数据中每个组合的0/1次数
  count(org, `Abx. class`, result) %>%
  # 转换为宽格式,把0和1作为列
  pivot_wider(
    names_from = result,
    values_from = n,
    values_fill = 0
  ) %>%
  # 关联所有组合,确保没有数据的组合也被保留
  right_join(all_combinations, by = c("org", "Abx. class")) %>%
  # 把缺失值替换为0(表示该组合没有对应结果)
  mutate(across(c(`0`, `1`), ~replace_na(., 0)))

运行后final_table就是你需要的表格:每行是一个微生物-抗生素组合,列0和1分别对应该组合的0、1出现次数。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 21:26:00