使用dplyr对R数据框做透视转换,统计标签匹配/不匹配计数
实现方案
首先加载所需依赖包:library(tidyverse)
先修正原数据中cross列的拼写错误(原数据存在笔误Matcehed):
df <- df %>% mutate(cross = recode(cross, "Matcehed" = "Matched"))
核心转换代码:
result <- df %>% # 将两个标签列合并为统一的label列 pivot_longer(cols = c(label_x, label_y), values_to = "label", names_to = NULL) %>% # 过滤标签为NA的无效行 filter(!is.na(label)) %>% # 按标签和cross匹配类型分组计数 count(label, cross, name = "cnt") %>% # 转换为要求的宽表结构 pivot_wider(names_from = cross, values_from = cnt, values_fill = 0) %>% # 重命名列并计算每个标签的总计数 rename(Matching = Matched, Mismatching = Mismatched) %>% mutate(Total = Matching + Mismatching)
执行后直接查看result即可得到符合要求的输出表。
内容的提问来源于stack exchange,提问作者TeoK
相关产品推荐
相关产品推荐

