了解 R 中的列表索引和括号约定

2024-01-13

我几乎了解 R 中的列表索引,但我有一些挥之不去的问题。具体来说,我试图了解使用多个索引来获取列表中的不同数据层,以及在每个数据类型的每个级别使用的括号类型。首先,我将展示一个简单的示例列表和我到目前为止的理解。

#Make an example list "L" containing different types of data
x<- matrix(1:12,3,4)
y<- seq(2,17,3)
z<- list(letters[1:5],LETTERS[1:5],letters[6:10],LETTERS[6:10])
L<- list(x,y,z)

顶级索引: L 是包含 3 个元素 x、y 和 z 的列表。要查看列表中的元素,请使用双括号。

#see matrix x, the first element of list L
x
L[[1]]

第二级索引: 只需在指定该元素的双括号后面添加该元素的任何数据类型的索引即可。

#List L's first element is matrix x, see x's row 2 column 3 value:
x[2,3]
L[[1]][2,3]
#List L's second element is vector y, see y's 4th value:
y[4]
L[[2]][4]
#List L's third element is list z, see z's first element:
z[[1]]
L[[3]][[1]]

第三级索引:只需继续为每个级别添加括号即可。

#List L's third element is list z, list z's first element is vector letters[1:5],
#see list z's first element's fifth value:
letters[1:5][5]
z[[1]][5]
L[[3]][[1]][5]

好的。所以这一切都很简单。您可以使用 [[element]] 表示列表,使用 [row,column] 表示矩阵,使用 [index] 表示向量。我的问题是关于你什么时候不这样做。

问题:

  1. 如果您对矩阵和向量使用双括号,它仍然有效。那么矩阵和向量的单括号和双括号有什么区别吗?

  2. 如果您在列表中使用单个括号,它仍然有效。但 [1] 返回一个包含元素 1 的列表,而不是返回(与 [[1]] 一样)第一个元素作为该元素。因此,您可以使用 list[c(elements)] 来获取包含以下子集的列表元素。还有其他原因让您在列表中使用单括号吗?

  3. 我在这里并没有真正涉及数据框,它是一种列表。但它们的形状像矩阵,您也可以像矩阵一样使用 [row,column] 查看值。使用数据帧的 [行,列] 索引是否有任何“危险”?

注意:之前的讨论非常有帮助,但没有回答这些具体问题:如何正确使用R中的列表? https://stackoverflow.com/questions/2050790/how-to-correctly-use-lists-in-r 用于访问列表或数据帧元素的 [] 和 [[]] 表示法之间的区别 https://stackoverflow.com/questions/1169456/in-r-what-is-the-difference-between-the-and-notations-for-accessing-the/1169973#1169973


None

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

了解 R 中的列表索引和括号约定 的相关文章

  • 错误消息:fn(x, ...) 中的错误:已过时的 VtV 不是正定的

    我正在尝试使用 lmer 函数创建一个最小足够模型 我的模型已配对 尺寸 尝试 状态 随机因素 as logical Mated as numeric Size as factor Attempts as factor Status 这些都
  • 将元组列表转换为字符串 Python

    例如 我用 python 编写了一个返回列表的函数 1 1 2 2 3 3 但我希望输出为字符串 这样我就可以用另一个字符替换逗号 这样输出就是 1 1 2 2 3 3 有什么简单的方法可以解决这个问题吗 感谢您提前提供任何提示 这看起来像
  • 使用 tidymodel 运行多个回归模型

    我最近一直在使用 tidymodels 来运行模型并选择最能满足某些目标函数的参数 例如 对 mtcars 数据使用假设回归 使用此问题底部答案中的回归示例作为示例 https stackoverflow com questions 241
  • Python 的二进制字符串列表

    我有一个像这样的二进制字符串 1100011101 我想将其解析为一个列表 其中每个 1 或 0 块都是列表中的单独值 例如 1100011101 变成 11 000 111 0 1 您可以通过使用正则表达式而不是从中获得一点 次要 性能g
  • 从 R 中的因子记录创建变量

    我有点迷失了 我有一个如下所示的数据框 tract ageClass count 1 0 4 71 2 0 4 192 3 0 4 81 1 5 8 9 2 5 8 86 3 5 8 42 我想要这样的结果 tract 0 4 5 8 1
  • dplyr 中每组的 cumsum

    我开始享受dplyr但我陷入了一个用例 我希望能够申请cumsum数据框中的每个组与包 但我似乎无法正确处理 对于演示数据框 我生成了以下数据 set seed 123 len 10 dates as Date 2014 01 01 1 l
  • PHP清晰度卷积矩阵

    我正在使用一个卷积矩阵 http www php net manual en function imageconvolution php为了锐度PHP GD我想改变清晰度 level 我会去哪里做出改变如果我想做到的话或多或少尖锐 imag
  • 如何使用 dplyr 的 filter() 和 R-base 的 ifelse() 过滤数据框?

    我的数据框df看起来像这样 Home Away Inning Boston NYC Top NYC Boston Bottom NYC Boston Top 我想使用 dplyr 的filter 制作一个数据框 从ifelse query
  • 如何按物种矩阵显示站点内植物物种生物量?

    我之前问过 如何将两列显示为二进制 存在 不存在 矩阵 这个问题得到了两个很好的答案 我现在想更进一步 在原始站点按物种列添加第三列 该列反映每个地块中每个物种的生物量 第 1 列 地块 指定约 200 个地块的代码 第 2 列 物种 指定
  • 在 python 上获取大目录文件列表的最佳方法?

    我有一个疯狂的大目录 我需要通过 python 获取文件列表 在代码中我需要获取迭代器 而不是列表 所以这不起作用 os listdir glob glob uses listdir os walk 我找不到任何好的库 帮助 也许是c li
  • 反转或点 kxnxn 矩阵的快速方法

    有没有一种快速方法可以使用 numpy 计算 kxnxn 矩阵的逆矩阵 在每个 k 切片处计算逆矩阵 换句话说 有没有办法矢量化下面的代码 gt gt gt from numpy linalg import inv gt gt gt a r
  • 如果包已经加载,那么在函数中需要包会有什么影响?

    加入有没有什么不良影响library require函数内的语句会被频繁调用吗 所用的时间似乎可以忽略不计 但我每隔几分钟调用该函数 我想知道重复是否有任何缺点require calls 请注意 该功能只是个人实用程序 不被共享 即 我是唯
  • 只保留矩阵中某些列具有相同元素的行

    让我举个例子 假设我们有 3 个表 重点关注 N 列 Table 1 Table 2 Table 3 N Values N Values N Values 5 1 5 1 5 1 10 2 6 2 6 21 15 3 10 3 10 5 1
  • 将误差线添加到多条线上以在 R 中的绘图上显示标准差

    我有一个包含许多不同线条的图 我想为每条线上的每个点添加误差线 df lt matrix runif 25 5 5 plot 1 5 seq 0 1 1 4 type n mapply lines as data frame df col
  • 为什么 import numpy 不会自动包含 matlib

    我正在尝试使用水平重复 numpy array xa numpy matlib repmat x 1 3 但是 直接输入此内容会导致错误 我必须添加import numpy matlib为了a numpy matlib repmat x 1
  • 如何在Shiny中动态生成的条件面板中格式化条件?

    我正在尝试使用 for 循环在 Shiny 中创建小部件 每个块包含 label 复选框 选择选择器 两个数字输入 我想根据复选框的值和选择选择器的值来设置显示或隐藏两个数字输入的条件 在我创建的 for 循环中 我为每个小部件变量添加了一
  • 多个变量的分组描述性统计

    给定数据框 df Hup Hop testA testB Y Hi 1 1 N Lo 2 2 Y Mi 3 3 N No 4 4 Y Hi 5 5 N Lo 6 6 Y Mi 7 7 N No 8 8 Y Hi 9 9 N Lo 10 10
  • 将多个对齐的绘图放置在一页上时避免浪费空间

    我想将四个图放在一个页面上 轴标签应仅打印在最边缘 即x仅用于底部图表的轴标签 以及y仅左图的轴标签 这既适用于整个轴的名称 也适用于各个刻度线 我可以使用以下代码生成一些内容 pdf file ExampleOutput pdf widt
  • 如何将管道链 (magrittr) 的结果提供给对象

    这是一个相当简单的问题 但我无法通过 google stackexchange 找到答案并查看 magrittr 的文档 如何提供通过 gt 连接的函数链的结果来创建向量 我看到大多数人做的是 a lt data frame x c 1 3
  • R中按字母顺序对每一行字符串进行排序

    我环顾四周 似乎找不到解决这个问题的好方法 我有一个包含行名称的列 我想按字母顺序对每一行进行排序 以便稍后可以识别具有相同名称但顺序不同的行 数据如下 names lt c John D Josh C Karl H John D Bob

随机推荐

  • console.log() 在控制台以外的对象上调用

    我记得总是当我想要通过时console log作为某个函数的回调参数 除非我使用bind 绑定方法console to it 例如 const callWithTest callback gt callback test callWithT
  • 使用 gradle 在 intellij 中从 JUnit 4 升级到 JUnit 5

    我想将我的 Gradle 项目测试从 JUnit 4 转换为 JUnit 5 由于有很多测试 我不想同时转换它们 我尝试配置我的build gradle像这样 apply plugin java compileTestJava source
  • 使用 c3 js 从 json 绘制饼图

    以代码为例 我需要生成一个有 4 个分区 site1 site2 的饼图 每个分区对应于其各自的上传值 在上面的代码中我无法实现这一点 我已指定值 upload 我必须指定的确切值是多少 Thanks chart c3 generate d
  • 处理并发文件写入

    我正在开发一个 ASP NET 应用程序 它接受用户输入并将其序列化到文本文件中 现在 当文件仍在写入时出现第二个更新请求时 将生成 IOException 如何处理对此文件的并发更新请求 你可以实现一个生产者 消费者 其中主线程将对象添加
  • NeuQuant.js(JavaScript颜色量化)JS转换中隐藏的bug

    NeuQuant js https github com antimatter15 jsgif blob master NeuQuant js当图像宽度和高度是 100 的倍数时效果很好 300x300 否则的话 显然有一个bug 299x
  • 如何在 Chrome 开发工具中设置元素的 :hover 状态并编辑子元素的样式

    假设我们有这样的风格 parent child parent hover child 两个选择器都为子元素设置样式 我想要的是编辑第二种样式 我点击 parent并设置 hoverChrome 开发者工具中的状态 单击一个 child元素来
  • 2d 矩阵的 Numpy 矩阵乘法得到 3d 矩阵

    我有两个 numpy 数组 比如 A array 0 1 2 3 4 5 B array 6 7 8 9 10 11 对于 A 和 B 的每一行 分别表示 Ra 和 Rb 我想计算转置 Ra Rb 因此 对于给定的 A 和 B 值 我想要以
  • “NoneType”对象没有属性“secret_key”

    我收到这个错误 NoneType 对象没有属性 secret key 当我尝试使用更新我的应用程序时git pull我已经在以下路径配置了AWS凭证 纳米 home USER aws config 我让它 我提到的存档 如下 profile
  • 如何将非消耗性订阅改为自动续订并保留老用户?

    我在 Apple Store 中有非消耗品定价的应用内购买功能 该应用程序的使用需要付费 如何将非消耗性订阅更改为自动续订订阅 以某种方式保留购买该应用程序的用户 新用户可通过自动续订订阅付费 不 你无法更改它 只需确保在你的应用程序中 你
  • android putextra 没有启动活动

    我需要帮助 我有两个活动和一个数据库 我想做的就是当我按下活动 A 中的按钮时 我将 editText 中的字符串发送到活动 B 在活动 B 中 我尝试将该字符串插入我的数据库中并将其显示在列表视图中 如果我在活动 A 中启动活动 B 则一
  • 如何让iOS应用程序与蓝牙连接?

    如何使用蓝牙制作iOS应用程序 我需要一个通过蓝牙与其他设备 例如笔记本电脑 连接并交换数据的应用程序 许多 BLE 软件包 但无法找到经典蓝牙的软件包 如果您想使用Apple iOS设备的经典蓝牙接口 您必须遵守 接受苹果的MFi htt
  • PHP:在线程之间共享静态变量

    我在 PHP 的不同线程之间共享静态变量时遇到问题 简而言之 我想要 1 在一个线程中写入静态变量 2 在其他线程中读取并进行所需处理并清理 为了测试上述要求 我编写了下面的 PHP 脚本
  • Guava 缓存“expireAfterWrite”似乎并不总是有效

    private Cache
  • 如何将 5000 多行从 google Analytics 导出到 Excel

    我正在尝试将 5000 多行从 google Analytics 导出到 Excel 工作表 但我无法这样做 我在谷歌上搜索了很多关于它的内容 并尝试了 url 修改来替换explorer table rowCount 3D5000 wit
  • Android Facebook 登录:如何在 XML 中没有 LoginButton 的情况下使用 LoginManager 检查登录情况

    我已经使用 LoginButton 在我的 Android 应用程序中完成了 facebook 登录检查 但我想使用 LoginManager 进行检查 我怎样才能修改我的代码以这种方式工作 LoginButton loginButton
  • 获取 Chrome 的当前区域设置

    我正在使用此 API 确定浏览器的当前区域设置 var language window navigator userLanguage window navigator language 此次回归 fr FR 在 IE 中 但它只返回 fr
  • 在 JavaScript 中从 DataURL 下载文件

    从 DataURL 获得的这个字符串中 将其下载为文件的最佳方法是什么 到目前为止我得到的是使用基本的window open myDataURL 但我无法以这种方式更改文件名 window open data application msw
  • Spring Boot 3 与 Lombok

    将我的项目从 Spring Boot 2 7 升级到 3 0 后 我得到 找不到标志 由于 Lombok 生成的代码而导致编译器错误 有什么方法可以让它协同工作 Spring Boot 3 和 Lombok 注释 您应该更新到 lombok
  • 右键单击以选择 Datagridview 中的一行并显示一个菜单以将其删除

    我的 DataGridView 中只有几列 而我的行中有数据 我在这里看到了一些解决方案 但我无法将它们组合起来 只需右键单击一行 它将选择整行并显示一个菜单 其中包含删除该行的选项 当选择该选项时 它将删除该行 我做了几次尝试 但都不起作
  • 了解 R 中的列表索引和括号约定

    我几乎了解 R 中的列表索引 但我有一些挥之不去的问题 具体来说 我试图了解使用多个索引来获取列表中的不同数据层 以及在每个数据类型的每个级别使用的括号类型 首先 我将展示一个简单的示例列表和我到目前为止的理解 Make an exampl