为电影创建虚拟变量

Creating dummy variables for movies

我想在我的数据集中为动作片创建虚拟变量。

我的代码是,

imdb$action_movies <- ifelse(imdb$imdb.com_genres == "Action", 1,0)

不幸的是,当我 运行 这段代码时,我只得到带有 Action 标签的电影,而不是带有多个标签的电影,例如动作冒险。

如何才能使我的虚拟变量包含具有动作标签和多种其他类型的电影?

这是一个比较简单的问题,正则表达式就可以解决。

基本上我们要检查每个字符串以查看它是否包含“Action”。如果是,我们给它一个 1,如果不是一个 0。

我们可以使用 {stringr} 中的 str_detect() 来做到这一点。

从那里我们将匹配放入 ifelse() 语句,就像您在上面所做的那样。

最后一列的示例如下所示

movies <- c("Action", "Comedy, Action, Adventure", "Action, Adventure")
imdb$action_movies <- ifelse(str_detect(movies, "Action") == T, 1, 0)

哪个returns

[1] 1 1 1