如何根据条件添加列?

时间:2016-03-23 19:28:43

标签: r conditional-statements

我知道以前有关于此的帖子,但提供的建议在我的情况下不起作用(

以下是我正在使用的数据框。我想要做的是添加另一列“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")]

提前多多感谢!!!

3 个答案:

答案 0 :(得分:1)

你也可以使用qdap包中的multigsub:

df$HomeWin <- multigsub(c("A", "H", "D"), c("L", "W", "D"), df$FTR)

答案 1 :(得分:0)

VAR=$(ssh first.com "ssh second.com 'rpm -qa | grep exampleString'")

但是如评论中所述,您可以不添加此列并参考FTR列,只检查“A”和“H”。这样可以省去无缘无故的第4列

答案 2 :(得分:0)

您还可以使用dplyr包并根据将用作查找表的数据帧执行left_join。只需在数据框之后添加此代码(假设您的数据框名为df):

library(dplyr)
left_join(df,data.frame(FTR = c("A","H","D"),Homewin = c("L","W","D")))

希望这有帮助。