R 优化嵌套列表的子集操作
是否可以提高此代码中最后一个子集操作的速度? 此代码获取一小部分打开的街道地图数据,搜索所有有名称的道路,并创建一个仅包含道路的新对象。 在优化代码的最后一位时,我很感兴趣:R 优化嵌套列表的子集操作,r,dplyr,data.table,tidyr,R,Dplyr,Data.table,Tidyr,是否可以提高此代码中最后一个子集操作的速度? 此代码获取一小部分打开的街道地图数据,搜索所有有名称的道路,并创建一个仅包含道路的新对象。 在优化代码的最后一位时,我很感兴趣: highway_subset <- subset(muc, ids = highway_subset_ids) 是的,这可能是可能的。您可以通过在控制台中输入str(muc)来查看osmar对象的结构,您可以通过运行osmar:::subset.osmar来查看用于进行子集设置的代码,它由组件函数组成,如osmar
highway_subset <- subset(muc, ids = highway_subset_ids)
是的,这可能是可能的。您可以通过在控制台中输入
str(muc)
来查看osmar对象的结构,您可以通过运行osmar:::subset.osmar
来查看用于进行子集设置的代码,它由组件函数组成,如osmar:::subset\u方式
。所有这些似乎都是用base R编写的,并且可以通过例如data.table
来加速
策略可能是找到一种更有效的方法,一次性完成这一整套操作:
highway_subset_ids <- subset(muc, way_ids = find(muc, way(tags(k == "highway"))))
highway_subset_ids <- find(highway_subset_ids, way(tags(k == "name")))
highway_subset_ids <- find_down(muc, way(highway_subset_ids))
highway_subset <- subset(muc, ids = highway_subset_ids)
highway\u subset\u id是的,这可能是可能的。您可以通过在控制台中输入str(muc)
来查看osmar对象的结构,您可以通过运行osmar:::subset.osmar
来查看用于进行子集设置的代码,它由组件函数组成,如osmar:::subset\u方式
。所有这些似乎都是用base R编写的,并且可以通过例如data.table
来加速
策略可能是找到一种更有效的方法,一次性完成这一整套操作:
highway_subset_ids <- subset(muc, way_ids = find(muc, way(tags(k == "highway"))))
highway_subset_ids <- find(highway_subset_ids, way(tags(k == "name")))
highway_subset_ids <- find_down(muc, way(highway_subset_ids))
highway_subset <- subset(muc, ids = highway_subset_ids)
highway\u subset\u id我分析了你的代码
库(“osmar”)
src我分析了你的代码
库(“osmar”)
srcget_osm(muc_bbox,src)
失败,并显示消息“错误:1407742E:SSL例程:SSL23\u get_服务器\u HELLO:tlsv1警报协议版本”奇怪。。我更新了这个问题并添加了一个不需要连接的版本。谢谢你更新这个问题,但我需要更多的指导/背景/动机才能进入正确的方向。优化的目标是什么?速度内存消耗?为什么您发现需要进行优化等?非常感谢。可能对ssl问题感兴趣。get\u osm(muc\u bbox,src)
失败,并显示消息“错误:1407742E:ssl例程:SSL23\u get\u服务器\u HELLO:tlsv1警报协议版本”奇怪。。我更新了这个问题并添加了一个不需要连接的版本。谢谢你更新这个问题,但我需要更多的指导/背景/动机才能进入正确的方向。优化的目标是什么?速度内存消耗?为什么您发现需要进行优化等?非常感谢。可能对ssl问题感兴趣。非常感谢您的建议。“使用[.data.table]对它们进行子集”是什么意思?我的意思是,你能提供一个小例子吗?你能提供一个从osmar代码中矢量化函数子集上的代码的例子吗?提前谢谢!关于第一个子集:这在我的代码中不是问题,因为这是一个我只做过一次的操作,但最后一个子集重复完成请扩展你的exa通过提供完成最后一个子集的循环来简化代码。我没有ssl问题,您的代码对我来说运行良好。我只是不想在投入时间之前猜测您到底在做什么。非常感谢您的建议。您所说的“使用[.data.table]对它们进行子集”是什么意思?我的意思是,你能提供一个小例子吗?你能提供一个从osmar代码中矢量化函数子集上的代码的例子吗?提前谢谢!关于第一个子集:这在我的代码中不是问题,因为这是一个我只做过一次的操作,但最后一个子集重复完成请扩展你的exa通过提供完成最后一个子集的循环来简化代码。我没有ssl问题,您的代码对我来说运行良好。我只是不想在投入时间之前猜测您到底在做什么。
highway_subset_ids <- subset(muc, way_ids = find(muc, way(tags(k == "highway"))))
highway_subset_ids <- find(highway_subset_ids, way(tags(k == "name")))
highway_subset_ids <- find_down(muc, way(highway_subset_ids))
highway_subset <- subset(muc, ids = highway_subset_ids)