如何根据R中的关键字更改变量因子的名称?

如何根据R中的关键字更改变量因子的名称?,r,R,我有一个变量,其中有几个级别包含“游戏”作为关键字。我不能手动更改变量的级别。相反,我希望将包含游戏的所有级别更改为一个通用级别 For example Category Games x Games Y Games Z Entertainment What I need is Category Games Games Games Entertainment Thanks 我们可以使用sub匹配一个或多个空格(\\s+),后跟其他字符,在“类别”列中将其替换为空白(“) df1$Cat

我有一个变量,其中有几个级别包含“游戏”作为关键字。我不能手动更改变量的级别。相反,我希望将包含游戏的所有级别更改为一个通用级别

For example

Category
Games x
Games Y
Games Z
Entertainment

What I need is 

Category
Games
Games
Games
Entertainment

Thanks

我们可以使用
sub
匹配一个或多个空格(
\\s+
),后跟其他字符,在“类别”列中将其替换为空白(

df1$Category <- sub("\\s+.*", "", df1$Category)
df1$Category
#[1] "Games"         "Games"         "Games"         "Entertainment"

df1$Category另一种方法是使用package,一个用于处理因子的CRAN包。
我将使用原始data.frame的副本
df2

library(forcats)

df2 <- df

new_games <- as.character(df$Category[grep("Games", df$Category)])
df2$Category <- fct_collapse(df$Category, Games = new_games)

df2
#       Category
#1         Games
#2         Games
#3         Games
#4 Entertainment
库(用于猫)

df2@PraveenChougale您之前说过它正在工作。在运行该行之后,它会给出NULLlevels@PraveenChougale你能像我更新一样显示示例的
dput
吗?我在示例中显示的数据是样本数据,实际上我有53个级别。我不能将所有这些手动放入code@PraveenChougale能否显示
级别(df1$类别)
library(forcats)

df2 <- df

new_games <- as.character(df$Category[grep("Games", df$Category)])
df2$Category <- fct_collapse(df$Category, Games = new_games)

df2
#       Category
#1         Games
#2         Games
#3         Games
#4 Entertainment
df <-
structure(list(Category = structure(c(2L, 3L, 4L, 1L),
.Label = c("Entertainment", "Games x", "Games Y", 
"Games Z"), class = "factor")), 
class = "data.frame", row.names = c(NA, -4L))