[英]How to add column based on condition?
我知道以前有关于此的帖子,但是提供的建议在我的情况下不起作用(
以下是我正在使用的数据框。 我想做的是添加另一列“ HomeWin”,它将使用FTR列中的信息,如果FTR = H,则放置“ W”,如果FTR = A,则放置“ L”,如果FTR = D,则放置“ D”。
HomeTeam AwayTeam FTR
1 Arsenal Coventry A
2 Aston Villa QPR H
3 Chelsea Blackburn A
4 Liverpool Sheffield Weds H
5 Man City Leeds D
6 Newcastle Tottenham A
想要的结果是:
HomeTeam AwayTeam FTR HomeWin
1 Arsenal Coventry A L
2 Aston Villa QPR H W
3 Chelsea Blackburn A L
4 Liverpool Sheffield Weds H W
5 Man City Leeds D D
6 Newcastle Tottenham A L
为了更加清晰,下面是我编写的代码(错误且不完整),但要使内容更清楚:
season_1993_1994[, HomeWin := ifelse(FTR %in% c("A"), "L")]
提前非常感谢!!!
您也可以使用qdap软件包中的multigsub:
df$HomeWin <- multigsub(c("A", "H", "D"), c("L", "W", "D"), df$FTR)
df$HomeWin = df$FTR
df$HomeWin[df$HomeWin == "A"] = "L"
df$HomeWin[df$HomeWin == "H"] = "W"
但是,正如评论中所述,您不能仅添加此列并引用FTR列,而只需检查“ A”和“ H”即可。 这样可以毫无理由地节省您需要第四栏的时间
您还可以使用dplyr包并基于将用作查找表的数据帧执行left_join。 只需在数据框之后添加此代码(假设您的数据框称为df):
library(dplyr)
left_join(df,data.frame(FTR = c("A","H","D"),Homewin = c("L","W","D")))
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.