R中的ifelse语句不起作用 - 列结果不正确

时间:2018-06-09 14:49:04

标签: r if-statement

我有一个df:

  

年|舞台| Home.Team.Name | Home.Team.Goals | Away.Team.Name | Away.Team.Goals

     

1998 | A组|巴西.................. | 2 ............................ |苏格兰............... | 1

等等。

我要做的是根据每个游戏的结果创建一个新列。因此,获奖者名称将显示在新列中。我目前的代码是:

RecentWorldCups$Game.Winner <- ifelse(RecentWorldCups$Home.Team.Goals>RecentWorldCups$Away.Team.Goals, RecentWorldCups$Home.Team.Name,
                                      ifelse(RecentWorldCups$Away.Team.Goals>RecentWorldCups$Home.Team.Goals, RecentWorldCups$Away.Team.Name,
                                             "Draw"))

结果是它给了我一个数字(可能是一个因子数?)而不是团队的名字。

任何人都可以提供帮助吗? 干杯

1 个答案:

答案 0 :(得分:1)

您需要从因子列中提取字符级别值。试试这个:

RecentWorldCups <- data.frame(Home.Team.Goals=c(...), ..., stringsAsFactors=FALSE)

如果您发现执行这些因子转换很麻烦,那么一种解决方法是创建数据框,其中所有字符串都设置为不是因素,例如:像这样的东西:

"^Item\\s+\\d{1,2}\\."