r - 为电影创建虚拟变量
问题描述
我想在我的数据集中为动作电影创建一个虚拟变量。
我的代码是,
imdb$action_movies <- ifelse(imdb$imdb.com_genres == "Action", 1,0)
不幸的是,当我运行这段代码时,我只得到带有专门Action
标签的电影,而不是带有多个标签的电影,例如动作冒险。
我怎样才能使我的虚拟变量包含具有动作标签和多种其他类型的电影?
解决方案
这是一个比较简单的问题,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
推荐阅读
- php - 如何使用 cURL 在 PHP 5.05 中发送文件
- python - AWS Lambda 函数持续时间不断增加
- .htaccess - htaccess:就像文件在另一个目录中一样,但 RewriteRules 似乎是互斥的
- python - TensorFlow 安装卡在 100%
- python - 这是什么音频数据类型,如何将其转换为 wav/l16?
- assembly - 如何在矩阵(MIPS 程序集)中添加用户选择的行/列的所有元素?
- javascript - 是否可以在 Internet Explorer 11 中使用 ECMAScript 2018?
- c++ - 抽象基类的派生类未正确覆盖基纯虚方法
- dask - dask 数据帧:合并两个数据帧,估算缺失值并写入 csv 仅使用部分 CPU(每个 CPU 中 20%)
- c++ - 为什么从串口读取的字节数限制在一定数量?