我有一个数据框,其中有一个名为“full_name”的列,表示两个团队,例如:"曼联赢利物浦赢利物浦赢曼联赢切尔西赢阿森纳赢等等......“
我希望能够将球队分为北队和南队,这样,如果出现“曼联赢利物浦赢”或“利物浦赢曼联赢”,那么这就是“北队”,而如果出现“切尔西赢阿森纳赢”,这就是“南队”,依此类推。
levels(raw_data$full_name)[levels(raw_data$full_name)== "Man U to win Liverpool to win"] <- 'North'
levels(raw_data$full_name)[levels(raw_data$full_name)== "Liverpool to win Man U to win"] <- 'North'
levels(raw_data$full_name)[levels(raw_data$full_name)== "Chelsea to win Arsenal to win"] <- 'South'
上面的代码没有产生任何错误,但是 Dataframe 保持不变,并且没有产生所需的输出。有办法做到这一点吗?
4条答案
按热度按时间rjzwgtxy1#
下面是一个 tidyverse 方法的示例,它可能会对您有所帮助
vuv7lop32#
下面是一种替代方法:
第一个
ulydmbyx3#
在R进制中,如果删除
levels()
调用,代码将按预期工作。如果希望列成为因子,可以在替换值后调用factor()
。或者,您可以使用具名向量做为参数表:
两种方法的结果:
avwztpqn4#
下面是
fct_recode
的一个选项或使用
base R
或者如果我们想使用
levels
数据