【问题标题】:Creating dummy variables for movies为电影创建虚拟变量
【发布时间】:2021-11-01 15:46:26
【问题描述】:

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

我的代码是,

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

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

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

【问题讨论】:

  • 提供一个样本数据集,它会让事情变得清晰。
  • 更具体地说,请看这里:stackoverflow.com/questions/5963269/… 所以最简单的方法是使用dput(your data)并将结果复制到这里,或者,如果数据太大,使用dput(head(your data)) .
  • 最简单的版本是grepl("Action", imdb$imdb.com_genres)。请注意,您的代码中不需要 ifelse。只需 ==grepl 将创建一个逻辑变量,如果在数字上下文中使用,它将被解释为 1/0。
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: r dummy-variable


【解决方案1】:

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

基本上,我们想检查每个字符串以查看它是否包含“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)

返回

[1] 1 1 1

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 2017-10-23
    • 2018-04-06
    • 2020-01-31
    • 1970-01-01
    • 2015-06-09
    • 2017-02-24
    • 2012-09-27
    相关资源
    最近更新 更多