问题标签 [non-equi-join]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
join - 在 GTE 或 LTE 条件下执行左连接的替代方法是什么?
我需要使用特定的旧版本 HIVE,它会阻止我在 GTE 或 LTE 条件下加入 2 个表。例如什么是等价的
什么是替代查询?
r - 在 r 中加入大数据框并同时过滤
我有两个数据框,每个数据框都有大约一百万行,我想通过 id 加入它们,然后过滤,以便对于每一行,列日期的值包含在 startdate 和 enddate 的值之间。
Andplyr::inner_join无法正常工作,因为它需要太多内存。对于每个id日期间隔df2都比 in大很多,df1这就是为什么 aninner_join %>% filter效率不高,是否可以同时进行?
r - 基于另一个数据帧对数据帧求和
我有 10 年内 10 个地点的每日降雨量数据
我有一个单独的数据框,它有特定的日子,我想用它来总结降雨量df
我想要的是 in 中的行df.ref,使用 in 中的index值df.ref并将dfindex1 到 index2、index1 到 index3 和 index1 到 index4 之间的降雨量相加。例如:
使用df.ref,对于 loc.id = 1 和 year == 2001,将df250 到 264、250 到 280、250 到 296 的降雨量相加(如图所示df.ref) 同样,对于 2002 年,对于 loc.id = 1,求和降雨量从 250 到 269、250 到 284、250 到 298。
我这样做了:
我希望使我的代码更快,因为我的实际代码df.ref很大。谁能告诉我如何让这个更快。
r - 如果日期在日期范围内,则按组求和
假设我有两个数据框。
第一个包括“名称”为“ID”发出“Rec”的“Date”和“Rec”失效的“Stop.Date”。
df(仅一部分)
第二个数据帧只包含一个时间序列:假设在这种情况下从 2006 年 3 月 29 日到 2006 年底。
df2
现在,如果 df2 中的“Date1”变量在时间范围内(直到 Stop.Date 的日期),我希望我的代码将所有由 ID 和名称组合的“Rec”相加
我发现这篇文章R - 如果日期在范围内,则求和,它似乎非常接近我的问题,但解决方案不考虑任何组。
我想提出一个data.frame,其中对于df2中的每个日期,都会显示每个“ID”的“REC”总和。
预期输出,例如
请记住,这只是数据的一小部分。通常,来自不同“名称”的每个“ID”存在更多的 Recs。(那么 sum 函数就有意义了)
非常感谢您提前提供的帮助。
更新后的版本
新数据框:
df
df2
如果我现在执行以下代码:
我得出以下结果:
但是由于例如df$ID“BMG4593F1389”的df2$Date1(“1999-12-29”)属于df中另外6个条目的日期范围(对于不同的df$Names)对于这个特定的df$date1,它应该是:
日期 1999-12-29 的预期结果(为简单起见,此处忽略 df3$interval 变量)
所以最后我需要复制 df$Date1 中的日期,如果有多个名称为特定的 df$ID 发出 Rec,该特定 df$ID 落在相应的日期范围内。
有人可以帮我吗?
r - R 中的非等值连接与 data.table - 反引号列名问题
当(反引号)列名包含空格时,我无法设法与 data.table 进行非等连接。
我在工作时从我们的数据库中收集这些名字,我们的明确政策是让每个人都使用相同的名字以避免混淆。我当然可以转换和重新转换,但我宁愿避免这种情况。
我想知道,这是 data.table 中的一个小故障,如果是这样,可以补救吗?还是我错过了什么?我对 R 很陌生,所以后者完全有可能......
一个可重现的例子:
以下确实有效:
以下没有:
错误信息是:
( a
[.data.table, b, on = .(test name1=test name4,test name2> : 列 [test name2,test name2] 在 x 中找不到
会话信息():
r - 在 df2 的日期时间中使用 df1 的“小时”和“分钟”的条件合并 2 个数据帧
我有一个df.sample这样的数据框
我有另一个df.state这样的数据框
我正在尝试根据条件合并这两个数据框
如果hourand minindf.sample在starttimeand endtimeof内df.state,则合并state = Pass到df.sample.
例如,第 2 行 indf.sample具有hour = 8,min = 59并且由于它在starttime = 2018-11-12 08:59:00in内df.state,因此将值Pass相加
这是我想要的输出
我能够像这样合并这两个数据帧,但无法在 df.state 的开始时间和结束时间中查找 df.sample 的小时和分钟
有人能指出我正确的方向吗
join - 如何在 Hive SQL 中按日期范围独家加入?
我有两个子查询,我只想按第一个表的开放日期和关闭日期之间的日期范围加入。
第一个表示例:
第二个表示例:
期望的输出:
这是我的代码:
我知道 Hive SQL 不支持将不等式作为JOIN. 但是我应该如何处理这个问题?
注意:我需要的连接专门用于日期,t1 和 t2 中没有相等的键可以用来连接它们。
谢谢!
r - 使用数据表的日期非等值连接
我有一个编辑数据表:
我想加入事件数据表:
要获得如下所示的输出,其中值指定编辑发生时的概率值:
到目前为止,这是我尝试加入两者的方法:
但是,当我尝试这样做时,我收到一条错误消息,显示“ vecseq 中的错误(f__, len__, if (allow.cartesian || notjoin || !anyDuplicated(f__, : Join results in 16 rows; more than 14 = nrow( x)+nrow(i). 检查 i 中的重复键值,每个键值都加入 x 中的同一组。如果没问题,请尝试 by=.EACHI 为每个组运行 j 以避免大分配. 如果您确定要继续,请使用 allow.cartesian=TRUE 重新运行。否则,请在 FAQ、Wiki、Stack Overflow 和 data.table 问题跟踪器中搜索此错误消息以获取建议。 "
r - 当主 df 中的日期在小 df 的范围内时,R 总结
与此处的 do.call/lapply 方法和此处的data.table方法类似,但两者都具有以下设置:
- 带有数据和开始日期/结束日期范围的 MainDF
- 带有单个日期向量的 SubDF
用户在哪里寻找与每个 SubDF 日期重叠的所有 MainDF 范围的摘要。我有
- 带有数据和单个日期向量的 MainDF
- 具有开始日期/结束日期范围的 SubDF
并且我希望将摘要附加到 SubDF,以获取属于每个 SubDF 范围内的多行 MainDF 数据。例子:
从第二个链接尝试 data.table 方法我认为它应该是这样的:
但它与未使用的参数错误on。在我的实际数据上,我通过使用 (相当于) 得到了一个结果max(MainDF$DataA),但它是第二个值的 3 次重复(在我的实际数据中,最后一行不会运行,因为它没有 DateTo 的值)。我怀疑使用MainDF$手段我已经颠覆了分组。
我怀疑我已经接近了,但我真的很难data.table理解复杂用例的思维方式。我想要做的汇总统计数据是(例如数据):
Mean&Max的数据Alength(which(DataA > 3))difftime(last(Dates), first(Dates), units = "mins")Dates[which.max(DataA)]
我添加了interval上面的行,因为它data.table的%between%帮助表明一个人可能能够使用一种Dates %between% interval格式,但它没有在文本或示例中具体提到间隔/差异时间,而且我的尝试已经在其他地方失败了,所以我不愿意专注于改进我的跑不动了就跑!
我一直专注于 data.table 方法,因为它用于类似的问题,但我一直想知道是否可以使用dplyr's group_by/代替?'s似乎仅限于对列的测试(例如它们是因素),而不是与列行中的数据相关,但我可能是错的。group_by_ifgroup_by_if.predicate
提前感谢您的帮助!
database - 内连接和非等连接有什么区别?
根据我在互联网上阅读的定义,在等连接中,连接条件是相等(=),而内连接也可以有其他运算符,例如小于(<)或大于(>)。
非等值连接是一种连接类型,其连接条件使用除等于以外的条件运算符。
这是否意味着非 equi 连接和内部连接是相同的?