问题标签 [fuzzyjoin]

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.

0 投票
1 回答
3129 浏览

r - 如何在 R 中使用模糊连接::difference_* 执行模糊连接

我正在使用两个不同的数据集,我想根据阈值合并它们。假设两个数据框如下所示:

我现在想要的是能够基于模糊匹配并在它们各自值的两秒内离开加入,而除此之外的所有其他值df2都是相同的。我想我可以通过以下方式到达那里:df1DateTimeCountItem

但这给了我以下输出:

这很接近,除了第 3 行不应该合并,因为名称不同(我希望第 2 行在给定阈值的情况下合并,即使我不希望它这样做)。

我如何最终得到以下数据框?请注意,尽管满足阈值限制,df2但未合并第二行和第三行。这是因为其他列(除了)不相同。DateTimeCountItem

0 投票
0 回答
75 浏览

r - 使用 rnoaa 包的内存问题

使用rnoaa包将美国站 ID 添加到天气事件的 df 中。下面是str()df rain

谷歌驱动器链接到子集的 csv 文件

省略了一堆与此无关的变量,这是raindf的片段

这是ghcnd_stations()tibble的片段,rnoaa文档建议分配它,这样就不必每次都调用它。

到目前为止,我已经能够使用该ghcnd_stations()命令调用站点列表,然后在删除非 CONUS 站点后,获取这些站点的纬度/经度坐标,fuzzyjoin::geo_inner_join用于比较两个列表并合并最近的站点.

我获取了我的数据的一个子集并尝试运行它并且它可以工作,但是当我尝试在整个数据集上运行该代码时,我遇到了memory.size错误:

我已经尝试过 uisng memory.size = 9000,并尝试阅读有关增加内存大小的信息,但我仍然收到错误消息。memory.size(max = TRUE)返回这个:

有没有更有效的方法来做到这一点,还是我必须将我的 df 切片,运行代码,然后rbind重新组合在一起?

只是为了上下文,这里是sys.info()

第一个问题!如果我没有包含任何相关内容,请告诉我。谢谢!

0 投票
1 回答
1582 浏览

r - 使用两列的模糊逻辑连接

我正在使用 r 包 blurjoin 加入两个数据集。目前我正在加入一个专栏,并想加入两个专栏。

  • 第一个数据集有一个位置的名称和一个名为 config 的列
  • 第二个数据集有一个位置的名称和两个三个属性
  • 我想加入两列名称和 TM

我尝试添加我希望作为向量加入的列名,但这似乎不起作用。我收到一条错误消息:

  • 错误:每个变量必须是一维原子向量或列表。问题变量:col。

    /li>

数据集1:

数据集2:

0 投票
1 回答
4503 浏览

r - 将参数传递给R中的多个match_fun函数fuzzyjoin::fuzzy_join

我正在回答这两个 问题并得到了足够的解决方案,但是我无法将使用的参数传递fuzzy_join到我从中提取的 match_fun 中fuzzyjoin::stringdist_join。在这种情况下,我使用了多个 match_fun 的组合,包括这个自定义的match_fun_stringdist,也用于精确==<=标准匹配。

我收到的错误消息是:


0 投票
1 回答
3243 浏览

r - rsqlite_send_query(conn@ptr, statement) 中的错误:重复的列名:Ret

我有一堆运行良好的 sql 查询,但现在,由于某种原因,不再运行。数据没有改变。代码没有改变。

我不断收到此错误消息:

rsqlite_send_query(conn@ptr, statement) 中的错误:重复的列名:Ret

这些错误往往发生在左连接上。在下面找到一个示例:

有问题的表都不包含名为“Ret”的变量

我最近更新了我所有的包。

这是遗留代码。我倾向于尽可能使用 dplyr::left_join 。但是 left_join 永远不会做 SQL 中的左连接可以实现的事情(不等式作为约束等)。

这些是我加载的包:

包 <- c("ISLR","gam","biglm","dplyr","gtools","tidyr","randomForest","splines","tree","pROC","lfe"," lubridate”、“stargazer”、“scales”、“ggplot2”、“scales”、“data.table”、“zoo”、“PerformanceAnalytics”、“stats”、“proto”、“timeSeries”、“timeDate”、 gsubfn","fBasics","DBI","RSQLite","sqldf","RODBC","tcltk","re​​shape","xts","data.table","parallel","lfe","阅读器”、“咕噜”、“小声”、“hms”、“stringr”、“lubridate”、“forcats”)

这是我的会话信息():

sessionInfo() R 版本 3.3.3 (2017-03-06) 平台:x86_64-redhat-linux-gnu (64-bit) 运行于:Red Hat Enterprise Linux Server 7.3 (Maipo)

语言环境: 1 LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
LC_TIME=en_US.UTF-8 [4] LC_COLLATE=en_US.UTF-8
LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US .UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

附加的基础包: 1 个并行 tcltk splines stats
graphics grDevices utils datasets methods base

其他附加软件包: 1 forcats_0.2.0
stringr_1.2.0 hms_0.3 [4] tibble_1.2 purrr_0.2.2
readr_1.0.0 [7] reshape_0.8.6
RODBC_1.3-14 sqldf_0.4-10 [10] RSQLite_1.1-2 fBasics_3011.87
gsubfn_0.6-6 [13] timeSeries_3022.101.2
timeDate_3012.100 proto_1.0.0 [16] PerformanceAnalytics_1.4.3541 xts_0.9-7 zoo_1.7-14 [19] data.table_1.10.4 ggplot2_2.2.1
scales_0.4.1 [22] stargazer_5.2
lubridate_1.6.0 lfe_2.5-1998 [25] Matrix_1.2-8 pROC_1.9.1
tree_1.0-37 [28] randomForest_4.6-12
tidyr_0.6.1 gtools_3.5.0 [31] dplyr_0.5.0 biglm_0.9-1 DBI_0.5-1 [34] gam_1.14 foreach_1.4.3
ISLR_1.0

通过命名空间加载(未附加): 1 reshape2_1.4.2
lattice_0.20-34 colorspace_1.3-2 chron_2.3-50 plyr_1.8.4
munsell_0.4.3 [7] gtable_0.2.0 codetools_0.2-15 memoise_1.0.0 labeling_0 .3 Rcpp_0.12.9 xtable_1.8-2 [13] digest_0.6.12 stringi_1.1.2 grid_3.3.3 tools_3.3.3 sandwich_2.3-4
magrittr_1.5 [19]lazyeval_0.2.0 Formula_1.2-1 assertthat_0.1 iterators_1.0.8 R6_2.2.0

不确定这是否与这个问题有关请记住我使用的是 RSQLite_1.1-2(早于 2.0)

老实说,我不知道发生了什么,也没有在网上找到任何东西......

更新一:我已经升级到 sqldf_0.4-11 和 RSQLite_2.0.... 仍然遇到这个问题。我也尝试加载 sqldf (和依赖项).... 代码仍然不起作用

更新二:首先,我要感谢G. Grothendieck在这个问题上的帮助以及这些年来他对 R 的贡献。

在这个特定问题上,我尝试使用 mtcars 运行测试查询。这是代码:

b<- sqldf("select a.*, b.mpg as test from mtcars as a left join mtcars as b on a.mpg=b.mpg")

这个查询有效!!!. 然后,我运行即使在更新到 sqldf 0.4.11 和 RSQLite 2.0 后仍无法正常工作的代码(请参阅更新 I)。令我惊讶的是,它现在可以工作了!!!....我不知道发生了什么,但是我所有的 sqldf 查询现在都在工作。仅供参考......我在 AWS 工作............我有时会发生这些无法解释的奇怪事情......

更新三问题又回来了。所以我再次在更新 II 中运行测试代码。这行得通。在运行了该测试代码之后,我所有的 sqldf 连接都再次工作了....去图

0 投票
1 回答
1618 浏览

r - 在R中按时间间隔合并数据帧

我有两个数据框。一种是带有主体、条件、时间戳、xposition 和 yposition 的眼动追踪数据框。它有超过 400,000 行。这是一个玩具数据集的示例:

然后我有一个包含主题、条件、试用号以及试用开始和结束时间的数据框。它看起来像这样:

条件下的试验次数是可变的,我想在我的眼动追踪数据框中添加一列,根据时间戳是否在时间间隔内指定正确的试验。时间间隔不重叠,但在两次试验之间会有很多行用于眼动追踪数据。最后我想要一个这样的数据框:

我见过data.table滚动连接,但更喜欢使用dplyror的解决方案fuzzyjoin。提前致谢。

0 投票
0 回答
137 浏览

r - 如何将多个模糊连接应用于同一数据框

我有以下与匹配不同数据框有关的问题。

首先,我有下一张桌子:

如何仅将一个模糊连接应用于相同的数据 ( tableand table_match) 而不是重复使用该函数两次?这个想法是只创建一个数据框,结合每个单独的模糊连接的结果。例子unique(rbind(match,match_1))

考虑到在实际示例中,我必须至少复制模糊连接五次(我有不同级别的 id)。

0 投票
1 回答
568 浏览

r - stringdist_join 导致 NA

我正在尝试使用 stringdist 包以进行模糊连接,但遇到了一个我不理解且无法找到答案的问题。我想用“dl”方法加入这两个数据表,它会产生一个 NA,我完全不明白。也许你们中的一个人对此有一个解释。编码:

但是,如果我使用 jaccard 方法,则会有一个匹配项:

希望任何人都可以澄清。

干杯穹顶

0 投票
0 回答
255 浏览

r - 并行模糊连接

我正在尝试通过并行处理来加速模糊连接。我有两个数据框,每个都有几千行,需要部分正则表达式连接。然而,它目前在单核上需要 40 多分钟。数据框如下所示:

(我正在使用 regex_right_join 因为 regex_left_join 不起作用)。

要运行并行处理,我尝试过

doParallel使用和时,用户和系统时间总是很短foreach。两者都<1s。但是,经过的时间foreach始终与在单核上运行(40 分钟以上)大致相同。

0 投票
1 回答
227 浏览

r - 连接数据框中具有相似(但不相等)值的行

我有一个df赞:

而且我想加入共享相同chr并且strand具有相似起点和终点的行(比如100 +/-距离)。对于执行行连接的那些列,我还想连接SampleID名称和Value. 对于前面的示例,类似于:

想法?谢谢!

编辑:

我找到了 R 的模糊连接包(https://cran.r-project.org/web/packages/fuzzyjoin/index.html)。有没有人有这个包的经验?

编辑2:

如果只有一个变量 (SampleIDValue) 将被连接起来,那也很好。