Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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_Dplyr_Data.table_Tidyr - Fatal编程技术网

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”)

src
get_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)