gpt4 book ai didi

r - 将每组 data.table 列中的值与向量中的值匹配

转载 作者:行者123 更新时间:2023-12-04 18:08:49 25 4
gpt4 key购买 nike

我最近开始使用 data.table 包来识别表格列中符合某些条件的值。尽管我设法完成了大部分工作,但现在我遇到了这个问题:

我有一个数据表table1,其中第一列(labels)是组ID,第二列o.cell是一个整数。关键在“标签”上

我有另一个数据表 table2,其中包含一个列:“cell”。

现在,我试图为表 1 中的每个组查找表 2 的“单元格”列中的“o.cell”列中的值。 table1 有大约 400K 行,分为 800 多个大小不等的组。 table2 有大约 1.3M 行的唯一单元格编号。可以在多个组中找到“o.cell”table1 列中的单元格编号。

这似乎是一项简单的任务,但我找不到正确的方法来完成它。根据我构建调用的方式,它要么给我一个与我预期不同的结果,要么它永远不会完成,我必须结束 R 任务,因为它被卡住了(我的机器有 24 GB RAM)。

这是我尝试过的调用“变体”之一的示例:

overlap <- table1[, list(over.cell =
o.cell[!is.na(o.cell) & o.cell %in% table2$cell]),
by = labels]

我很确定这是为此任务使用数据表的错误方法,除此之外我得不到我想要的结果。

我将不胜感激任何帮助。谢谢。

最佳答案

听起来这是你的设置:

dt1 = data.table(labels = c('a','b'), o.cell = 1:10)
dt2 = data.table(cell = 4:7)

你只是想做一个简单的合并:

setkey(dt1, o.cell)
dt1[dt2]
# o.cell labels
#1: 4 b
#2: 5 a
#3: 6 b
#4: 7 a

关于r - 将每组 data.table 列中的值与向量中的值匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19668549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com