Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:用数据来表示重叠。表慢,有没有更快的替代方案?_R_Data.table_Lapply - Fatal编程技术网

R:用数据来表示重叠。表慢,有没有更快的替代方案?

R:用数据来表示重叠。表慢,有没有更快的替代方案?,r,data.table,lapply,R,Data.table,Lapply,我得到了一个表,我想在其中使用查找表替换单个列的值 使用lappy,效果很好。 然而,有了庞大的数据集,它可以运行数小时 有更快的选择吗? 谢谢 MWE: require(data.table) #虚拟数据。 dtu lookup您可以使用match实现查找表 i您可以使用match实现查找表 i如果我没有误解什么,你可以做一个简单的连接: dt[dt_lookup, cls := i.cls_new, on = .(cls = cls_old)] dt # cls data #1: 1

我得到了一个表,我想在其中使用查找表替换单个列的值

使用lappy,效果很好。 然而,有了庞大的数据集,它可以运行数小时

有更快的选择吗? 谢谢

MWE:

require(data.table)
#虚拟数据。

dtu lookup您可以使用
match
实现查找表


i您可以使用
match
实现查找表


i如果我没有误解什么,你可以做一个简单的连接:

dt[dt_lookup, cls := i.cls_new, on = .(cls = cls_old)]
dt
#   cls data
#1:   1    1
#2:   2    2
#3:   3    3
#4:   4    4
#5:   5    5

你真的应该花点时间研究数据表的小插曲和文档。

如果我没有误解,你可以做一个简单的连接:

dt[dt_lookup, cls := i.cls_new, on = .(cls = cls_old)]
dt
#   cls data
#1:   1    1
#2:   2    2
#3:   3    3
#4:   4    4
#5:   5    5

你真的应该花些时间研究data.table的小插曲和文档。

我认为这通常被称为“更新连接”,所以在搜索中使用它(连同R和data.table),你会找到的。我认为这通常被称为“更新连接”,所以在搜索中使用它(连同R和data.table)你们会发现。
dt[dt_lookup, cls := i.cls_new, on = .(cls = cls_old)]
dt
#   cls data
#1:   1    1
#2:   2    2
#3:   3    3
#4:   4    4
#5:   5    5