在 R 中索引冗余命名的向量

2023-12-02

在 R 中,当有一个冗余命名向量时,为什么无法使用选择运算符检索命名向量中的所有元素?

v <- c(1,2,3,4,5)
names(v) <- c("a","b","c","c","a")
v["c"] ## Returns only 3, not c(3,4)

看起来 R 假设向量名称是唯一的,并且仅检索向量中名称与选择运算符中的参数匹配的第一个元素。

这是某种优化吗?如果我们能够选择向量中具有相同名称属性的多个元素,这不是很有好处吗? 要点是保证使用索引运算符时返回的元素数量与索引向量中的元素数量相同吗?


这是一个有根据的猜测,因此欢迎确认或反驳。 (确认如下)

From ?"[":“字符向量将与对象的名称匹配”。

> match("c",names(v))
[1] 3

您可以使用以下方法来解决这个问题:

> v[names(v)%in%"c"]
c c 
3 4 

EDIT: [是一个原始函数,所以它实际上并没有使用match。源代码里有答案,但我还没有找到。

EDIT2:

源码中的答案:R函数[调用C函数do_subset,可以在源文件中找到./src/main/subset.c。在您给出的示例中,C 函数stringSubscript最终被调用,并且迭代作为子集的向量的每个名称(v在本例中)直到找到匹配项。此时,迭代停止并返回相应的索引和名称。

因此,当您使用子集时,仅返回与第一个匹配名称对应的向量的值v["a"]。因此,建议遵循其他答案和评论中的建议来使用唯一名称:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 R 中索引冗余命名的向量 的相关文章

  • 闭包作为数据合并习惯的解决方案

    我正在尝试解决闭包问题 而且我think我发现了一个案例 他们可能会有所帮助 我有以下几部分需要处理 一组正则表达式 旨在清理状态名称 位于函数中 具有州名称 上述函数创建的标准化形式 和州 ID 代码的 data frame 用于链接两者
  • 如何修复 R 中 Kaplan Meier 图的风险表计算错误

    以下是一个数据帧 其中 6 个参与者中的每一个都有唯一的 record ID 我想绘制一个生存分析图 其中包含感兴趣事件的复发以及在时间间隔 tstart 到 tstop 内 暴露 药物剂量 数值变量 的时间依赖性协变量 每个参与者的最大
  • 如何将plot中的单变量列表图表转换为ggplot2格式?

    我正在搜索 但仍然找不到一个非常简单的问题的答案 我们如何使用 R 中的 ggplot2 生成一个变量的简单线图 我正在分析时间序列数据 并且想要对图表进行更复杂的操作 我认为如果我使用 ggplot2 代替会更好plot It works
  • 从 csv 文件中读取奇数行

    这看起来相当简单 我只需要从 R 中的数据文件中读取奇数行并创建一个新的数据框 我怎样才能实现这个目标 read csv filename csv c TRUE FALSE 怎么运行的 功能read csv用于读取整个文件并返回包含所有行的
  • 数据帧初始化 - 字符初始化读取为因素?

    我正在尝试初始化这样的数据框 因为我想要一个空数据框 其中两个字符向量作为列 out frame lt data frame Hospital character State character 但是 当我查看该数据框的每一列的类时 它显示
  • 显示特定颜色

    我正在研究颜色分类 我正在用特定颜色初始化一个矩阵 以便可以获得红色 蓝色或绿色的 16x16 矩阵 代码如下 library rgl color1 lt function n lt 3 m lt 16 a lt list numeric
  • 在 R 中打印具有长字符串的数据帧

    让我们有一列包含长字符串的数据框 df lt data frame short rnorm 10 0 1 long replicate 10 paste rep sample letters runif 1 5 8 collapse 如何打
  • 使用 geom_tile() 的 R ggplot 热图:如何按年份排序并在 y 轴上显示所有年份?

    在研究了哈德利的书并在这里搜索后 我创建了一个由年和月矩阵组成的热图 颜色根据时间序列变量的百分比变化而变化 热图和我用来获取它的代码如下所示 我还有一些我自己无法解决的问题 1 如何对矩阵进行排序 排序 以便 y 轴中的年份从最早到最晚
  • 将数字提高到非整数幂时出现奇怪的 NaN [重复]

    这个问题在这里已经有答案了 我执行了以下代码 tau lt 0 25 h lt 0 6 n 1 5 4 5 dnorm qnorm tau 4 qnorm tau 2 qnorm tau 2 1 2 1 5 R 继续生产NaN 然而 R 实
  • 为什么 statsmodels 和 R 的逻辑回归结果不同?

    我正在尝试比较 python 的 statsmodels 和 R 中的逻辑回归实现 Python版本 import statsmodels api as sm import pandas as pd import pylab as pl i
  • R:大向量的高效迭代子集和过滤

    我想更快地执行以下操作 Logic 我有一个向量big共 4 个元素1 2 3 4 我还有一个相同长度的阈值向量1 1 3 1 4 1 5 1 我希望每个元素找到第一个元素的索引next元素高于相应的阈值 在这种情况下 我的预期输出是 2
  • R闪亮数据表在开始时不显示记录(行)

    我正在构建一个带有数据表的闪亮应用程序 我想要的是启动时不显示任何记录 行 这样您只能看到表格顶部的过滤器 当您开始输入时 会显示行 我在数据表中找不到选项 这可能吗 下面是示例代码 shinyApp ui navbarPage title
  • 如何处理“不符合”的数组?

    如何对两个数组进行逐元素算术运算 在第一维度中一致 但也有一个额外的维度 示例 乘法数组a 3 x 3 x 2 按数组b 3 x 3 a lt array 1 18 dim c 3 3 2 b lt diag 3 由于数组不一致 因此以下操
  • 将密度曲线拟合到 R 中的直方图

    R中有没有可以将曲线拟合到直方图的函数 假设您有以下直方图 hist c rep 65 times 5 rep 25 times 5 rep 35 times 10 rep 45 times 4 看上去很正常 但其实是歪曲的 我想拟合一条倾
  • 如何调整ggplot直方图的时间刻度轴

    我正在使用一个数据框 其中一列包含POSIXct日期时间值 我正在尝试使用绘制这些时间戳的直方图ggplot2但我有两个问题 我不知道如何设置 binwidthgeom histogram 我想将每个垃圾箱设置为一天或一周 我尝试提供 di
  • 如何使用 r 中的 caret 包在最佳调整超参数的 10 倍交叉验证中获得每次折叠的预测?

    我试图使用 R 中的插入符包使用 10 倍交叉验证和 3 次重复来运行 SVM 模型 我想使用最佳调整的超参数获得每次折叠的预测结果 我正在使用以下代码 Load packages library mlbench library caret
  • 用于清除工作空间和转储存储的 R 全局函数

    我希望创建一个全局函数来清除我的工作区并转储我的内存 我将我的函数称为 cleaner 并希望它执行以下代码 remove list ls gc 我尝试在全局环境中创建该函数 但是当我运行它时 控制台仅打印该函数的文本 在我要获取的函数文件
  • ggplot 中的错误问题:“grid.Call(”L_textBounds“, as.graphicsAnnot(x$label), x$x, x$y, … 中的错误”[重复]

    这个问题在这里已经有答案了 我试图在 ggplot 中制作一个条形图 其中我通过强制其中一些标签为长度为零的字符串 即 来指定要显示的标签 但是 我收到错误 Error in grid Call L textBounds as graphi
  • 如何在 R 中为传单中的数值变量设置不对称颜色渐变

    我想让传单调色板以零为中心 红白绿发散 我已经尝试过中所说的这个帖子 https stackoverflow com questions 29262824 r center color palette on 0 当我尝试手动创建颜色时 我得
  • 在另一个 Rmd 中运行选定的块

    我已经在源 Rmd 文件中运行了分析 并且希望仅使用few来自源的块 我已经看到了一些关于从源 Rmd 中提取所有块的答案来自另一个 Rmd 中的 Rmd 文件的源代码 https stackoverflow com questions 4

随机推荐

  • 通过 FB.ui 共享对话框动态生成显式共享的开放图故事的描述

    在我就此主题所做的所有研究中 90 都已过时 这让我相信 Facebook JS SDK 最近在明确共享 Open Graph 故事方面发生了变化 我有以下代码 function postToFB desc FB ui method sha
  • 尝试并捕捉帕斯卡

    我正在使用 Dev Pas 1 9 2 并试图确保输入符号或字母值时程序不会崩溃 我用谷歌搜索了一遍 但找不到任何关于如何实现这一目标的资源 任何帮助是极大的赞赏 谢谢 这是我尝试管理输入的代码 Function GetMenuChoice
  • 有没有办法在iText(Java版本)中将矩形绘制到PdfPCell中?

    我找到了一些关于如何在 iText 中绘制表单的教程 但我需要将其插入单元格中 但我不知道如何操作 感谢您对此事的考虑 由于谷歌没有对完整的代码示例给出任何好的回应 而且我花了很多时间试图弄清楚如何做到这一点 即使杰斯的解释现在看起来很清楚
  • : 包含多个单词

    我正在使用以下 jQuery var etag kate if etag length gt 0 div each function this find ul not contains etag hide this find ul cont
  • 设置水晶报表中详细信息部分的大小

    我正在使用 VS2008 中的水晶报告生成账单报告 其中 详细信息部分的大小是动态的 即取决于记录的数量 它会发生变化 因此 如果我有 10 条记录 则报告视图是整页 即 k 但是如果我在详细信息部分中有 2 条记录 则整个页脚部分将粘在详
  • Firebase 跨多个节点的数据一致性

    根据Firebase 文档数据被展平 索引用于链接树中的不同节点 users userId widgets widgetId widgets widgetId 在上面的例子中 如果用户创建了一个小部件 那么widgetid也存储在用户节点下
  • “不幸的是,应用程序名称已停止。” Android 设备或模拟器

    我是 Android 开发新手 我正在按照一些教程来创建第一个应用程序 当我想运行该应用程序时 编译器没有显示错误 但在模拟器中显示 不幸的是 取景器 blabla 已停止 代码 AndroidManifest xml 文件
  • Google App Script“异常:FILENAME.csv超出最大文件大小”的解决方案?

    我正在构建一个 Google App Maker 应用程序 它将用户上传的 Excel CSV 电子表格文件作为输入 我想过多种可能的解决方案来从该文件读取数据 但每次都遇到此错误 异常 FILENAME csv 超出最大文件大小 我尝试通
  • Hibernate:无法加载 Hibernate 配置 条目中声明的类

    我是 Hibernate 的新手 并得到了这样的堆栈跟踪 hql gt from TracksEntity 2014 04 26 21 13 45 org hibernate MappingException Unable to load
  • 将 Color32 数组转换为字节数组以通过网络发送

    我一直致力于在 Unity3D 中的 Android 设备上进行网络摄像头流媒体视频和照片捕获 我发现的大多数捕获网络摄像头源的示例都使用特定的 WebCamTexture 对象来访问设备的摄像头硬件 我目前能够捕获相机输入 但 WebCa
  • 使用 SQLiteQueryBuilder 连接两个表

    我正在尝试使用 Android SDK 的 SQLiteQueryBuilder 连接两个表 我们将它们称为 t1 和 t2 并根据每个表中的属性 例如 t1 att1 和 t2 att2 查询该表 等于某个值 在选择时我对语法有点困惑 感
  • x64 系统上的 win32 应用程序编译 0K 时出现运行时错误(dll 加载)

    我最初在win7 32位上设计了一个win32应用程序 使用VC9 0 我最近升级到win7 64位 并尝试构建 执行以前的应用程序 构建运行良好 win32 应用程序 但在运行时我收到错误 已退出 代码为 1073741701 0xc00
  • 决赛桌的合并相当于什么?

    我正在尝试使用合并来仅插入新记录 我想收集插入的新记录的 ID 以及被忽略的重复记录的 ID 这是表的创建语句 drop table SSZ ME MIS test update table create table ssz me mis
  • 如何将 TabBarView 上的滚动条“合并”到 PageView 中?

    我有一个在其主页上使用 PageView 的应用程序 今天 我被分配在其中一个页面中插入 TabBarView 问题是 当我在最后一个选项卡中滚动选项卡之间时 向左滚动将不会滚动 PageView 我需要一种方法来使页面视图在选项卡视图的开
  • 如何使用java自动从日历中选择特定日期

    我有一个案例 我必须从日历中选择 3 天回溯的日期 如何使用 selenium 自动化此案例 我正在使用 java 和 selenium 进行自动化 1 假设您可以在输入字段中写入日期 并且日历只是图标 你可以有这样的辅助方法 public
  • 如何在提交事件处理程序中获取表单值?

    我试图开始使用一个非常简单的 Google 表单 其中仅包含几个问题 只有 2 个选项和一个简短文本的多项选择 创建后 我打开脚本编辑器并输入 function onSubmit e Logger log onSubmit s JSON s
  • WP7 (Windows Phone 7) 在 XAML 或 C# 中锁定手机方向

    Windows Phone 7 是否可以手动锁定手机方向 因为我使用加速度计来处理具有固定 UI 的按钮旋转 我已经尝试过了 在 XAML 中 SupportedOrientations Landscape Orientation Land
  • 将 simple-prefs (SDK API) 与外部脚本和 postMessage 一起使用

    我正在使用 SDK 开发附加组件的新版本 针对 Gmail 并且需要为我的用户存储一些布尔首选项 为此 我想使用新的 simple prefs API 基于Mozilla 文档和这个堆栈溢出问题 我得到了一些东西 但我面临以下问题 1 我无
  • 是否可以在 vscode 中将您的代码分为 R 部分?

    有没有办法使用类似于 RStudio 的代码部分 或 MATLAB 的 在 VSCode 中 我想将我的代码分为几个部分并有选择地运行这些部分 那可能吗 Thanks Yasir 我认为您正在了解一些不同的事情 如果您想划分代码并像 jup
  • 在 R 中索引冗余命名的向量

    在 R 中 当有一个冗余命名向量时 为什么无法使用选择运算符检索命名向量中的所有元素 v lt c 1 2 3 4 5 names v lt c a b c c a v c Returns only 3 not c 3 4 看起来 R 假设