r - dplyr - %in% 在用于数据帧时总是返回 false
问题描述
我正在尝试在 dplyr 中使用 mutate 函数来创建字符串功能。基本上,如果给定值存在于另一个数据框中,我想保留该值。否则,我想用未知替换它。当我尝试以下代码时,所有值始终显示为“未知”,无论它们是否存在于我用来查找的数据框中。我究竟做错了什么?
解决方案
dataframe_name['column_name']
返回一个数据框。您需要一个可以使用 or 来实现的向量,因此ifelse
您应该使用or 。[[
$
dataframe_name[['column_name']]
dataframe_name$column_name
例如,以mtcars
数据集为例,查看输出的差异。
mtcars['cyl'] %in% 6
#[1] FALSE
mtcars[['cyl']] %in% 6
# [1] TRUE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE
#[13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
#[25] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
mtcars$cyl %in% 6
# [1] TRUE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE
#[13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
#[25] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
这可能是一个有用的阅读 -括号 [ ] 和双括号 [[ ]] 之间的区别用于访问列表或数据框的元素
推荐阅读
- java - Vaadin 14 - 使用渲染的删除按钮删除一行网格
- visual-studio - Visual Studio 程序集 - 我不明白为什么我的程序集代码给了我这个值
- javascript - 显示从 x 时间到 x 时间的文本(它将在下一个文本中继续),如演示文稿
- sql - 如何静态比较大数?
- android - java.lang.NoSuchFieldError: 尝试运行 WireMockServer 中的实例
- python - API 调用 - 文件会发生什么?
- javascript - 赛普拉斯:监控控制台输出
- c# - 如何使用字符串按数据表排序
- node.js - 获取每个 Json 对象的下一个和预览 id
- javascript - 用键替换 json 值