Как изменить имя фактора переменной на основе ключевых слов в R? - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть переменная, в которой есть несколько уровней, содержащих «игры» в качестве ключевого слова. Я не могу вручную изменить уровни переменных. Вместо этого я хочу изменить все уровни, содержащие игры, на общий уровень.

For example

Category
Games x
Games Y
Games Z
Entertainment

What I need is 

Category
Games
Games
Games
Entertainment

Thanks

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Другой способ - использовать пакет forcats, пакет CRAN для работы с факторами.
Я буду работать с df2, копией оригинального data.frame.

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))
0 голосов
/ 21 ноября 2018

Мы можем использовать sub для сопоставления одного или нескольких пробелов (\\s+), за которыми следуют другие символы, заменить их пробелом ("") в столбце «Категория»

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

данных

df1 <- structure(list(Category = c("Games x", "Games Y", "Games Z", 
 "Entertainment")), class = "data.frame", row.names = c(NA, -4L
  ))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...