r - 数据框 %in% 数据框。(R 编程)
问题描述
我正在尝试使用逻辑向量以特定方式从数据集中提取某些行:
Logical.vector <- df %in% df[df$a=='ABC123',]
Logical.vector
-----------------------------------------
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
作为df[df$a=='ABC123',]
从具有下一个维度的数据帧 (df) 中提取的多行(“子数据帧”):
ndim(df)
---------------------------------------
[1] 4226 11
为什么我的代码没有获得成功的结果?我可以通过哪种方式获得数据框行的逻辑向量?先感谢您!
解决方案
原因是它%in%
适用于vector
而不适用于list
or data.frame
。为此,我们需要==
(但这仅适用于单个元素)。如果我们想使用%in%
,那么paste
每一行都为一个字符串
i1 <- do.call(paste, c(df, sep=", ")) %in%
do.call(paste, c(df[df$a=='ABC123',], sep=", "))
推荐阅读
- javascript - Angular 监听服务中输入的变化并在全球范围内分发信息
- verilog - 使用 JK 触发器的同步计数器未按预期运行
- java - Logback 不会将日志写入文件
- java - Play audio from assets with SQLite
- c# - c# ms-word office-interop 问题与 FindAndReplace Header
- php - 为什么 wordpress 在使用查询字符串页面时会自动更改 url?
- docker - 无法从不同的 docker 容器连接到 redis
- r - R 重复序列每个重复加 1
- sql-server - SQL Server 存储过程执行超时 - 我需要额外的索引吗?
- vb.net - 在 DataGridView 分页中添加第一页和最后一页按钮