r - 多列,我想根据 R 或 Excel 中的另一列重新排列这些列
问题描述
我有看起来像这样的数据。对于R_fighter
,我想要R_fighter
在获胜列中定义获胜者的战士。
例如,这对于第 5 行并不满意,Petr Yan 赢得了战斗,但他在B_fighter
. 另外,我需要R_KD
andB_KD
被换成第 5 行,andR_sig_str
和B_sig_str
. 我有更多具有R_
和B_
列属性的列,并且也需要将它们全部交换。
B_fighter
我需要切换获胜者的所有行。
附件是我的数据样本:
R_fighter,B_fighter,R_KD,B_KD,R_SIG_STR.,B_SIG_STR.,win_by,weight,winner
Henry Cejudo,Marlon Moraes,0,0,90 of 171,57 of 119,KO/TKO,UFC Bantamweight Title Bout,Henry Cejudo
Valentina Shevchenko,Jessica Eye,1,0,8 of 11,2 of 12,KO/TKO,UFC Women's Flyweight Title Bout,Valentina Shevchenko
Tony Ferguson,Donald Cerrone,0,0,104 of 200,68 of 185,TKO - Doctor's Stoppage,Lightweight Bout,Tony Ferguson
Jimmie Rivera,Petr Yan,0,2,73 of 192,56 of 189,Decision - Unanimous,Bantamweight Bout,Petr Yan
Tai Tuivasa,Blagoy Ivanov,0,1,64 of 144,73 of 123,Decision - Unanimous,Heavyweight Bout,Blagoy Ivanov
Tatiana Suarez,Nina Ansaroff,0,0,75 of 142,48 of 99,Decision - Unanimous,Women's Strawweight Bout,Tatiana Suarez
Aljamain Sterling,Pedro Munhoz,0,0,174 of 349,105 of 265,Decision - Unanimous,Bantamweight Bout,Aljamain Sterling
Karolina Kowalkiewicz,Alexa Grasso,0,0,90 of 232,148 of 369,Decision - Unanimous,Women's Strawweight Bout,Alexa Grasso
Ricardo Lamas,Calvin Kattar,0,1,12 of 29,22 of 41,KO/TKO,Featherweight Bout,Calvin Kattar
Yan Xiaonan,Angela Hill,0,0,94 of 249,71 of 144,Decision - Unanimous,Women's Strawweight Bout,Yan Xiaonan
Bevon Lewis,Darren Stewart,0,0,31 of 84,30 of 73,Decision - Unanimous,Middleweight Bout,Darren Stewart
Eddie Wineland,Grigorii Popov,2,0,74 of 171,55 of 150,KO/TKO,Bantamweight Bout,Eddie Wineland
Katlyn Chookagian,Joanne Calderwood,0,0,82 of 221,112 of 266,Decision - Unanimous,Women's Flyweight Bout,Katlyn Chookagian
非常感谢 :)
解决方案
您可以使用dplyr
R 中的包,它有很多功能来重塑数据。
在你的情况下,你可以使用类似的东西:
library(dplyr)
mydata %>%
mutate(R_fighter_new = winner,
B_fighter_new = if_else(R_fighter == winner, B_fighter, R_fighter),
R_KD_new = if_else(R_fighter == winner, R_KD, B_KD),
B_KD_new = if_else(R_fighter == winner, B_KD, R_KD)) %>%
select(R_fighter = R_fighter_new, B_fighter = B_fighter_new, R_KD = R_KD_new, B_KD = B_KD_new, winner)
在最后一条select
语句中,您可以在数据框中包含所需的所有列。
推荐阅读
- reactjs - 创建 npm 包时 babel-macros 出错
- python - 在具有活动 virtualenv 的 python 模块上使用 vscode 调试器,launch.json 中的“配置文件中的 python 路径无效”
- excel - VBA 代码仅在我逐步运行时才有效(F8)
- reactjs - SCORM 加载资源失败:服务器响应状态为 404 ()
- python - 是否可以自动验证 Python 类型存根包?
- python - 了解 PyTorch 中的反向传播
- blogger - 博主太日期标题问题
- angular - 当有多个组件时,Angular 服务被调用两次
- php - 终端命令删除多个文件-CPanel,共享主机感染病毒
- redirect - 将 Strapi 管理员索引重定向到管理员登录