首页 > 解决方案 > 为电影创建虚拟变量

问题描述

我想在我的数据集中为动作电影创建一个虚拟变量。

我的代码是,

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

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

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

标签: rdummy-variable

解决方案


这是一个比较简单的问题,regex 可以解决。

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

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

从那里我们将我们的匹配项放入一个ifelse()声明中,就像您在上面所做的那样。

最后一列的示例如下所示

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

哪个返回

[1] 1 1 1

推荐阅读