首页 > 解决方案 > 多列,我想根据 R 或 Excel 中的另一列重新排列这些列

问题描述

在此处输入图像描述

我有看起来像这样的数据。对于R_fighter,我想要R_fighter在获胜列中定义获胜者的战士。

例如,这对于第 5 行并不满意,Petr Yan 赢得了战斗,但他在B_fighter. 另外,我需要R_KDandB_KD被换成第 5 行,andR_sig_strB_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

非常感谢 :)

标签: rexcelformattingdata-cleaningdata-processing

解决方案


您可以使用dplyrR 中的包,它有很多功能来重塑数据。

在你的情况下,你可以使用类似的东西:

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语句中,您可以在数据框中包含所需的所有列。


推荐阅读