r - 对来自不同行的相似字符串进行分组并计算 R 中的总数
问题描述
我有一个看起来像这样的表:
联盟 | 团队 | 教练 |
---|---|---|
夏天 | Rangers1-北 | 蒂芙尼 |
冬天 | 游骑兵2 | 詹姆士 |
夏天 | Ranger1-南 | 蒂芙尼 |
我需要执行某种 group_by 并将相似的行(Rangers1-North,Ranger1-South)组合成一个完整的行,以获得正确的教练和联赛,总数量的球队看起来像这样:表格子集. 请看下面的图片
所以它本质上是一个数据透视表。我正在为此苦苦挣扎。任何帮助将不胜感激,我的 R 技能很少。
解决方案
数据是否足够干净以保证 Rangers1-North 和 Rangers1-South 始终拥有相同的教练?是否总是存在团队-其他信息?
如果是这样(这比必要的要冗长得多,但看起来你是 R 的新手,所以希望它更容易理解)
library(data.table)
#Your data
data <- data.table(league = c("summer", "winter", "summer"),
team = c("Rangers1-North", "Rangers2", "Rangers1-South"),
coach = c("Tiffany", "James", "Tiffany"))
#Creates the team name
data[, team_subset := gsub("(.*)-.*", "\\1", team)]
#Generates your count variable
data[, count := .N, by=c("team_subset", "league", "coach")]
#For non-subset firms, delete subset
data[count == 1, team_subset := ""]
#Subsets the data and retains unique items
tmp <- unique(data[count > 1], by=c("team_subset", "league", "coach"))
tmp[, `:=` (team = team_subset, team_subset = "")]
#Recombine and sort
data <- rbind(data, tmp)
setorder(data, team, league)
data <- data[order(team), .(team, team_subset, league, coach, count)]
推荐阅读
- react-native - 无法对未安装的组件执行 React 状态更新。(react-native-error)
- python - 如何使用 lambda 函数将当前列表索引与下一个列表索引进行比较
- sql - 左表中空记录的子查询问题
- android - 工具栏中的菜单更改或消失
- authentication - 在 Linux 下使用 curl 到 FTPS 到 z/OS FTP TLS 服务器与客户端身份验证
- javascript - render() 是如何实际执行的?
- blazor - Mapster 和 Blazor
- build - Bamboo 构建后自动删除工件的脚本
- java - 如何在@PostConstruct 方法中测试@Override 方法
- python - pandas 中的正则表达式用 ^ 过滤列