向量子集性能:名称与索引

2024-03-16

如果我有一个向量v姓名:

John       Murray     Lisa       Mike       Joe       Ann 
0.0832090  0.0475580 -0.2797860  0.1086225  0.0104590 -0.0028250 

时间复杂度是多少v['Joe'] versus v[4]?我猜前者会花费 O(log n) 因为它应该涉及二分搜索,但我仍然不确定后者是否是 O(1) 。

另外,结果是否可以推广到以下情况:v是列表/数据框而不是原子向量?


好像是大约O(n),即在名称查找的情况下进行矢量扫描。您对使用索引查找的 O(1) 的猜想似乎是合理的......

#  Unique names for longish vector
nms <- apply( expand.grid( letters , letters , letters , letters ) , 1 , paste , collapse = "" )
length(nms)
#[1] 456976
length(unique(nms))
#[1] 456976

#  Start of names
head(nms)
#[1] "aaaa" "baaa" "caaa" "daaa" "eaaa" "faaa"

#  End of names
tail(nms)
#[1] "uzzz" "vzzz" "wzzz" "xzzz" "yzzz" "zzzz"

#  Large named vector
x <- setNames( runif( 456976 ) , nms )

#  Small named vector
y <- setNames( runif(26) , letters )

#  Timing information
require( microbenchmark )
bm <- microbenchmark( x['daaa'] , x[4] , x['vzzz'] , x[456972] , y['d'] , y[4] )
print( bm , order = 'median' , unit = 'relative' , digits = 3 )
#Unit: relative
#      expr min       lq   median       uq      max neval
# x[456972] NaN 1.00e+00     1.00     1.00    1.000   100
#      x[4] Inf 1.00e+00     1.33     1.07    0.957   100
#      y[4] NaN 5.01e-01     1.33     1.14    0.191   100
#    y["d"] Inf 1.00e+00     2.00     1.25    0.265   100
# x["vzzz"] Inf 6.57e+04 44412.24  9969.64 3439.154   100
# x["daaa"] Inf 6.59e+04 44582.73 10049.63 1207.337   100
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向量子集性能:名称与索引 的相关文章

  • 如何在 R 中执行随机森林/交叉验证

    我无法找到对我尝试生成的回归随机森林模型执行交叉验证的方法 因此 我有一个数据集 其中包含 1664 个解释变量 不同的化学性质 和一个响应变量 保留时间 我正在尝试生成一个回归随机森林模型 以便能够预测给定保留时间的物质的化学性质 ID
  • 添加有关白天/黄昏/夜晚/黎明的信息以在 R 中跟踪数据

    我有一个数据集 其中包含几个月的日期时间 纬度和经度变量的跟踪数据 如下所示 gt start lt as POSIXct 2018 08 01 00 00 00 format Y m d H M S tz UTC gt datetime
  • R:如何添加具有从矩阵的每一行中随机选择的值的列?

    我会先说我是一个 R 菜鸟 我认为这可能有一个简单的解决方案 但我正在努力寻找它 我有一个 2 列 1 000 行的矩阵 保持行固定 我想创建一个新变量 从两列中随机选择一个元素 例如制作一个简单的矩阵 matrix c 1 1 4 6 1
  • 在 R 中将文本文件拆分为段落文件

    我正在尝试将一个巨大的 text 文件拆分为多个 text 文件 每个文件仅包含一个段落 让我举个例子 我需要这样的文字 这是第一段 这没有任何意义 因为这只是一个例子 这是第二段 和前一段一样毫无意义 另存为两个独立的 txt 文件 其中
  • xml2 包 (R) 中的 xml_find_all 函数未找到相关节点

    我使用 R 中的 xml2 包来访问 xml 数据 发现它在不同的 xml documents 上表现不同 在这个宠物的例子中 library xml2 doc lt read xml
  • 如何处理重叠的因子水平? (例如,生成表格和图表时)

    我面临一个数据集的问题重叠因素水平 我想按因素级别生成时间线 条形图和统计数据 但是 我希望因子水平是模棱两可的 这意味着属于多个级别的观察结果应该在图中出现多次 这是我的数据结构的示例 head lt c ID YEAR BRAZIL G
  • 使用facet时ggplot2控制每行的面板数量?

    Is it possible to control the number of panels per row in a ggplot I can only get an equal number of panels on each row
  • 在 R 中使用 gamlss::lms 选择百分位数曲线

    我正在使用 gamlss 包中的示例代码来绘制百分位数曲线 library gamlss data abdom lms y x data abdom n cyc 30 它正在绘制自己的一组百分位数曲线 如何选择只绘制第 10 50 和 90
  • 使用 Rcpp 得出斐波那契数列的意外结果

    我刚刚开始使用Rcpp很抱歉 如果我错过了一个简单的步骤或类似的东西 我已经尝试过这个 sourceCpp library Rcpp sourceCpp code include
  • 在knitr中打印漂亮的交叉表

    我想要的是使用 R Markdown 和 knit 从 RStudio 打印漂亮的交叉表 无论是在 pdf 文件中 还是在 html 文件中 我怀疑我错过了一些非常明显的东西 因为我不敢相信这是如此困难 我使用 xtabs 或 ftable
  • 使用列表中的数据框:删除变量,添加新变量

    定义一个列表dats有两个数据框 df1 and df2 dats lt list df1 data frame a sample 1 3 b sample 11 13 df2 data frame a sample 1 3 b sampl
  • R Shiny - 修复了 Shiny 仪表板中的侧边栏和主标题

    我有一个简化的闪亮仪表板 请参阅下面的代码 我想修复侧边栏和主标题 因此 在其他帖子的帮助下 我编写了一个 CSS 文件来解决该问题 sidebar color FFF position fixed width 220px white sp
  • 自动将变量名称添加到列表的元素[重复]

    这个问题在这里已经有答案了 我有一个模型列表 为了使代码更易于维护 因此可以方便地添加和删除模型 我希望有一个地方来存储它们及其名称 为此 我必须解决以下命名问题 上游 我生成模型的方式比以下方式效率低 如果是这样压缩的 我会assign他
  • 为格子中的每个面板添加不同的独特标签

    很清楚如何在格子中标记面板 https stackoverflow com questions 8508269 how to label panels in lattice using panel text or ltext论据 但是 如果
  • 创建后修改 ggplot 对象

    有没有首选的修改方式ggplot创建后的对象 例如 我建议我的学生将 r 对象与 pdf 文件一起保存以供以后更改 library ggplot2 graph lt ggplot mtcars aes x mpg y qsec fill c
  • 数据表中的 NA

    我有一个data table其中包含一些组 我对每个组进行操作 有些组返回数字 其他组返回NA 因为某些原因data table很难将所有东西重新组合在一起 这是一个错误还是我误解了 这是一个例子 dtb lt data table a 1
  • dplyr 总结小计

    Excel 中数据透视表的一大优点是它们会自动提供小计 首先 我想知道 dplyr 中是否已经创建了任何可以实现此目的的东西 如果没有 实现它的最简单方法是什么 在下面的示例中 我按气缸和化油器的数量显示了平均排量 对于每组气缸 4 6 8
  • 如何在r中进行左连接[重复]

    这个问题在这里已经有答案了 我有两个数据集一和二 数据集一 a b c 111 a 1 112 b 2 113 c 3 114 d 4 115 e 5 数据集二 e d g 222 ss 11 111 ff 22 113 ww 33 114
  • 删除绘图轴值

    我只是想知道是否有一种方法可以消除 r 图中的轴值 分别是 x 轴或 y 轴 我知道axes false将摆脱整个轴 但我只想摆脱编号 删除 x 轴或 y 轴上的编号 plot 1 10 xaxt n plot 1 10 yaxt n 如果
  • 使用 lpSolve 优化 R 团队名单

    我是 R 新手 有一个想要解决的特定幻想运动队优化问题 我见过其他帖子使用 lpSolve 来解决类似的问题 但我似乎无法理解代码 下面的示例数据表 每个球员都在一个球队中 扮演着特定的角色 有薪水 并且每场比赛都有平均得分 我需要的限制是

随机推荐

  • Windows 上的 Spark-shell 错误 - 如果不使用 hadoop 可以忽略它吗?

    启动spark shell时出现以下错误 我将使用 Spark 处理 SQL Server 中的数据 我可以忽略这些错误吗 java io IOException 无法在 Hadoop 二进制文件中找到可执行文件 null bin winu
  • 为什么运行 StAX Parser 时出现 NullPointerException?

    我正在尝试用 Java 编写 StAX XML 解析器 但总是出现 NullPointerException 错误 请帮我解决这个问题 完整问题 线程 main 中的异常 java lang NullPointerException org
  • 相当于 jQuery 的 $(window).width 的原始 JavaScript 是什么?

    我听说这是偏移宽度 https stackoverflow com questions 833699 clientheight clientwidth returning different values on different brow
  • 在 Laravel 的 FormRequest 中使用复杂的条件验证规则

    我正在使用 Laravel 开发一个 Web 应用程序 我现在正在做的是创建一个 FirmRequest 来进行验证 这是我的表格请求 use Illuminate Foundation Http FormRequest class Sto
  • VS 2019 SSIS包无法添加SQL Server

    我安装了 Visual Studio 2019 和 SSIS 包扩展并创建了一个新项目 我可以毫无问题地将我的 SQL Server 添加为连接管理器 但是当我拖动Data Flow Task到包中并拖动Source Assistant对此
  • MEF 与 Mono.AddIn

    我正在开发一个 NET 3 5 C 桌面应用程序 它应该可以通过插件进行扩展 是否有任何文章等讨论 MEF 和 Mono AddIn 之间的差异来帮助我做出明智的决定 或者更好的是您有这两个框架的经验并且可以对它们发表评论吗 谢谢 帕特里克
  • geopy.exc.GeocoderInsufficientPrivileges:HTTP 错误 403:禁止

    我尝试使用 geopy 获取纬度 经度 但它会抛出 http 403 禁止错误 from geopy geocoders import Nominatim geolocator Nominatim addr 350 5th Ave New
  • 反应事件目标父节点

    是否可以获取虚拟 DOM 上事件目标的父节点 在我的基本 React 组件中 我有一个从 onClick 事件触发的方法 我想获取父虚拟 DOM 节点属性 handleClick e The following code only give
  • 用浮点数初始化 NSArray?

    这是用浮点对象初始化 NSArray 的有效方法吗 NSArray fatArray NSArray arrayWithObjects NSNumber numberWithFloat 6 9 NSNumber numberWithFloa
  • Ruby on Rails:有哪些可用的报告和/或图表工具? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我刚刚开始使用 Ruby Rails 想知道 Rails 开发人员使用什么在 Rails 站点上提供报告
  • 结束对话 C# 机器人

    我正在用 C 构建一个聊天机器人 我希望在一些消息之后对话停止 但我不知道该怎么做 我已经设置了消息限制 并且我希望在达到此限制后不能再发送消息 有我的代码 private int NombreDeMessages protected ov
  • 是否有通用 I2C 命令来查看设备是否仍然存在于总线上?

    是否有通用的 I2C 命令来查看设备在初始化一次后是否仍然存在于总线上 例如 OLED 显示器 我问这个的原因是为了避免主程序由于库代码中存在无限循环而冻结 当设备断开连接时 例如 Wire 库 在 MCU 启动时 我想检查设备是否可用 并
  • python3请求使用quote而不是quote_plus

    我使用 Python 3 和requests http docs python requests org en master 用于查询 REST 服务的模块 库 看来请求默认使用urllib parse quote plus 对于 urle
  • 在后台接收蓝牙管理器通知

    我在我的应用程序中使用BluetoothManager私有框架 我想知道当应用程序处于后台时如何接收BluetoothManager通知 例如 在后台接收连接 断开连接的蓝牙通知 提前致谢 Use global notification e
  • 在 GridView 中通过分页维护排序

    我目前正在尝试编写代码 以便在更改 GridView 上的页面时保持排序首选项 我当前的代码运行良好 可以根据用户的排序选择对数据进行排序 但是当换页时 排序不起作用 我没有收到错误 而是收到未排序的结果 这是我的 aspx 代码
  • 如何使用sequelize 与postgres 进行日期比较

    我想删除日期在 20 分钟之前的所有记录 Postgres 或 Sequelize 对裸露的 javascript 不满意Date我提供的对象作为比较值 我在 postgres 9 6 数据库之上使用sequelize 4 37 有问题的列
  • Flask AttributeError:“HTMLString”对象没有属性“__call__”

    我创建了一个宏来处理表单错误 如下所示 macro render field with errors field p field label field kwargs safe if field errors p ul for error
  • R:如何将移动平均值应用于数据框中的列子集?

    我有一个数据框 training set 其中包含 83 个变量的 150 个观察值 我想用一些移动平均线来转换其中 82 个列 问题是结果最终只有 150 个数值 即 1 列 如何在数据中的每一列中单独应用移动平均函数并保持第 83 列不
  • “您的设备与此版本不兼容”

    我在 Play 商店中放置了一个应用程序 而我的朋友 在两台设备上运行 4 0 3 在尝试安装我的应用程序时收到以下消息 您的设备与此版本不兼容 一台设备允许安装 而另一台设备则不允许 我允许 API 3 15 并且两台设备都是 4 0 3
  • 向量子集性能:名称与索引

    如果我有一个向量v姓名 John Murray Lisa Mike Joe Ann 0 0832090 0 0475580 0 2797860 0 1086225 0 0104590 0 0028250 时间复杂度是多少v Joe vers