r - 如何检查我的表是否符合另一个表中的条件
问题描述
我是 R 的新手。这个问题似乎很常见,但我无法从以前的问题中找到相关答案。
我有如下数据:
我想对我的数据中符合这些条件的所有行进行比较,并希望将黄色列作为返回结果。
希望这很清楚。
解决方案
我们可以使用大于, ( )outer
的函数来获取所有值的组合。我们对两列都这样做并将它们相加。我们正在寻找两列都超过限制,所以基本上是在寻找 2 的总和。一旦我们有了这个,我们可以用来获取至少 1 个非零的行,即>
rowSums
m1 <- (outer(df$column1, df1$Forcolumn1, `>`) + outer(df$column2, df1$Forcolumn2, `>`) == 2) * 1
# [,1] [,2] [,3] [,4] [,5]
#[1,] 0 0 0 0 0
#[2,] 0 1 0 0 0
#[3,] 0 0 0 0 0
#[4,] 0 0 1 0 0
#[5,] 0 0 1 0 0
#[6,] 0 0 0 0 1
使用rowSums
我们得到您的预期输出,
rowSums(m1 > 0)
#[1] 0 1 0 1 1 1
数据
dput(df)
structure(list(Data = 1:6, column1 = 11:16, column2 = c(3, 3,
2, 2, 1, 0)), class = "data.frame", row.names = c(NA, -6L))
dput(df1)
structure(list(max_limit = 1:5, Forcolumn1 = c(11, 11, 13, 14,
15), Forcolumn2 = c(3, 2, 0, 1, -1)), class = "data.frame", row.names = c(NA,
-5L))
推荐阅读
- c# - ListViewItem 中的自动刷新值
- python - 使用 Plotly 和 Flask 实时绘制图表?
- java - Selenium WebDriver Java 同字段加词循环
- azure-media-services - azure media services v3 - 如何更改媒体保留单元类型和计数?
- javascript - 将多个数组转换为具有属性的对象数组
- c++ - 当我尝试从文件中读取矩阵时,会出现各种错误,但仅使用输入的数据时工作正常
- python - 在读取文件 Python 时跳过大块行
- c - 从C中的字符串中删除所有'\'
- python - 在 Python Flask 应用程序中获取 HTTP 标头的最佳方法是什么?
- logging - 设置 Graylog:日志服务器应该在哪里以及客户端如何访问它?