我应该使用 data.frame 还是矩阵?

2023-12-02

什么时候应该使用data.frame,什么时候最好使用matrix?

两者都以矩形格式保存数据,因此有时会不清楚。

对于何时使用哪种数据类型有什么通用的经验法则吗?


部分答案已包含在您的问题中:如果列(变量)预计为不同类型(数字/字符/逻辑等),则您可以使用数据框。矩阵用于相同类型的数据。

因此,只有当您拥有相同类型的数据时,选择矩阵/data.frame 才会出现问题。

答案取决于您要如何处理 data.frame/matrix 中的数据。如果要将其传递给其他函数,则这些函数的参数的预期类型将决定选择。

Also:

矩阵的内存效率更高:

m = matrix(1:4, 2, 2)
d = as.data.frame(m)
object.size(m)
# 216 bytes
object.size(d)
# 792 bytes

如果您计划进行任何线性代数类型的运算,则矩阵是必需的。

如果您经常按名称引用数据框的列(通过紧凑的 $ 运算符),那么数据框会更方便。

恕我直言,数据框也更适合报告(打印)表格信息,因为您可以单独对每列应用格式。

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

我应该使用 data.frame 还是矩阵? 的相关文章

  • SQL Server RODBC 连接

    有没有人有使用 RODBC 并连接到 MS SQL Server 2005 或 2008 的连接字符串示例 谢谢 library RODBC dbhandle lt odbcDriverConnect driver SQL Server s
  • 使用 SP 包中的 SpatialPoints() 转换坐标参考系 (CRS) 以创建空间数据框

    Issue 我有一个形状文件我已将其导入到 R 中 并为正在进行的分析选择了感兴趣的变量 我的最终目标是插值点数据 海豚 ID 获取海面温度 SST 堆栈中每个单独的光栅文件的值70 栅格来自名为 ncin SST 的对象 该对象是使用函数
  • 无法对列数据重新排序

    我有数据框而不是序列 如果我使用len df columns 我的数据有3586列 如何重新排序数据序列 ID V1 V10 V100 V1000 V1001 V1002 V990 V991 V992 V993 V994 A 1 9 0 2
  • 在 R 中捕获段错误

    我得到了caught segfault每次我尝试从以下位置运行任何绘图函数时都会出错ggplot2包 1 0 0 我已经尝试过这个qplot geom dotplot geom histogram等来自包的数据 例如diamonds or
  • R中一张图中的多个条形图

    我是 R 初学者 我需要创建一个像这样的图表 https i stack imgur com az56z jpg https i stack imgur com az56z jpg 我不知道如何生成整个数据集 基本思想是某个外显子 ID 会
  • R Shiny UI 子选项复选框?

    我有一个基本的 RShiny 应用程序 它有一个反应式复选框 它根据复选框中选择的数据 df 列 绘制时间序列数据 我当前的代码生成一个带有复选框输入的 UI 如下所示 Load R packages library shiny libra
  • 如何在R中的2行之间交换多个值

    我有一个大小为 10x100 的矩阵 如何交换前 30 列中第 1 行和第 2 行之间的值 我们可以反转前两行的行索引以及通过采取序列创建的列索引rounded 30 总列数用于交换行中的值 colS lt seq round ncol m
  • 如何在 R 中创建循环来生成随机样本列表?

    我正在尝试创建一个循环来创建一系列包含随机样本的对象 如下所示 sample lt ceiling runif 9 min 0 max 20 这是圆形制服的示例 但它可以替换为普通 泊松或任何您想要的 因此 我构建了一个循环来自动生成各种生
  • 不理解..密度的行为

    在下面的数据框中 我预计密度的 y 轴值为 0 6 和 0 4 但它们是 1 0 我觉得我使用的方式显然缺少一些非常基本的东西 密度 但是我的大脑冻结了 我将如何使用 密度 获得所需的行为 任何帮助将不胜感激 df lt data fram
  • 递归累积函数

    我需要在 R 中编写一个累积求和函数 但我一直碰壁 该函数具有以下结构 a x1 a x2 a 2 x1 a x3 a 2 x2 a 3 x1 a x4 a 2 x3 a 3 x2 a 4 x1 等等 cumsum 似乎不适用于此类功能 有
  • 为什么 as.character() 返回日期列表中的整数?

    我惊讶地发现 R 中出现以下行为 as character c Sys Date gt 1 2018 02 05 as character list Sys Date gt 1 17567 为什么会出现这种情况 也就是说 显然 17567
  • 如何在 R 中绘制预测的子集?

    我有一个简单的 R 脚本来根据文件创建预测 自 2014 年以来就有数据记录 但我在尝试实现以下两个目标时遇到了困难 仅绘制预测信息的子集 从 11 2017 开始 以特定格式包含月份和年份 即 6 月 17 日 这是链接到dataset
  • 如何在 rmarkdown 中显示带有 results='asis' 的格式化 R 输出

    当使用 results asis 时 有没有办法在 rmarkdown knitr 中显示格式化程序 R 输出 一个例子是以下函数 myfun lt function cat hello n cat c one 1 two 2 然后 该块将
  • 双向条形图,两侧带有正标签ggplot2

    我尝试在 ggplot 中创建一个双向条形图 其中轴上方和下方的轴标签和数据标签均为正值 例如 如果您的数据是 myData lt data frame category c yes yes no no month c Jan Feb Ja
  • 如何拆分 data.frame -> 将合并应用于子集 -> 合并到 data.frame 中

    我真的不知道如何在不使用 for 循环的情况下实现这一目标 x lt c a b c d gt x 1 a b c d data lt data frame x c a b a b c a a b c d name c one one tw
  • 在闪亮的应用程序中使用传单地图作为过滤器

    是否可以使用传单地图来过滤闪亮应用程序中的数据 就像在 Tableau 或 Power BI 中一样 方法是单击地图上的某个状态 然后根据条件过滤另一个图表或表格选择 None
  • 如何更改数据表中的少数列名称

    我有一个包含 10 列的数据表 town tc one two three four five six seven total 需要生成我正在使用的列 一 到 总计 的平均值 DTmean lt DT lapply SD mean by t
  • Pandas 数据框可对多列和要列出的值进行字典

    我有一个数据框 id key a1 1 a2 1 a3 1 a4 2 a5 2 a6 3 我想创建一本字典key作为机器号 并且id列作为列表 like 1 a1 a2 a3 2 a4 a5 3 a6 我可以先使用 groupby 然后再使
  • 如何在R中绘制仪表图表?

    如何在 R 中绘制以下图 Red 30 Yellow 40 Green 30 Needle at 52 所以这里有一个完整的ggplot解决方案 注意 从原始帖子中编辑 在仪表中断处添加数字指示器和标签 这似乎是OP在评论中所要求的 如果不
  • R data.table fread 使用不带标题的命名 colClasses(例如没有 col.names?)

    更新 2016 年 6 月 col names 已添加到 data table 1 9 6 所以问题已经结束 每个人都非常高兴 我想我现在可以将所有 read csv 调用转换为 fread 调用 而不必担心破坏 原问题 使用数据表1 9

随机推荐

  • 没有默认构造函数的 C++ 私有变量 - 无法编译?

    我有一个没有默认构造函数的类 obj1 以及也没有默认构造函数的类 obj2 并且具有 obj1 的一个元素作为私有变量 我想要类似下面的代码 但实际上这不能编译 告诉我 obj1 没有默认构造函数 class obj1 obj1 some
  • 从“管理员用户”重新验证用户 x 以删除用户 x

    在其他带有removeUser的Firebase版本中 我们只能使用电子邮件和密码删除用户 在新的 Firebase 版本中 似乎您只能删除与该用户连接的用户 但是当我与管理员用户连接并尝试删除其他用户时 问题就出现了 这是代码 final
  • 您的 Ruby 版本是 1.9.3,但您的 Gemfile 指定为 2.1.0

    当我跑步时 rails server 我得到了错误 加载宝石集时出现一些问题 rvm list rvm rubies ruby 1 9 3 p484 i686 ruby 2 0 0 p353 i686 ruby 2 1 0 i686 gt
  • 如何从 Android 调用 Python 脚本

    Android中可以调用Python脚本吗 我已经有一些 Python 2 7 脚本 我想从 Android 调用它 该脚本创建文件并填充数据 更具体地说 我尝试在手机上执行 Python 脚本 该脚本连接到某个站点 下载数据并执行一些智能
  • 从 api 调用通过服务返回到组件的数据是一个对象,对于 Angular 来说似乎需要是一个数组

    我收到返回的数据 效果很好 工作数据是 data Array 16 不起作用的数据是这样的 data Menu1Items Array 5 gt 0 etc 我正在使用 Angular 5 因此服务返回这样的数据 map response
  • 错误:MacOS 上“全局命名空间中没有名为‘uint8_t’的成员”

    Chriss MacBook Pro 2 build louisduplessis cmake make In file included from Library Developer CommandLineTools usr includ
  • vim 映射

    我正在与 Cygwin Mintty Vim 合作 With
  • 如何在 SslStream.AuthenticateAsClient 方法中使用证书回调?

    当我在 IE 中手动导入证书 工具 Internet 选项 内容 证书 时 我的 C NET SSL 连接可以正常工作 但如何通过代码加载证书 这是我的代码 TcpClient client new TcpClient ConfigMana
  • 如何获取 Scala 列表中多次出现的所有元素的集合?

    例如 为了List 1 1 1 2 3 3 4 这将是Set 1 3 因为 1 和 3 是唯一出现多次的元素 val s List 1 1 1 2 3 3 4 a list with non unique elements s diff s
  • 使用 javascript 和 PHP 生成相同的 MD5

    我正在尝试构建一个需要比较任何文件的 MD5 哈希值的应用程序 由于具体问题 上传前 客户端必须生成MD5 上传后应用程序需要在服务器端检查MD5 我的第一个方法是在客户端使用 JavaScript File API 和FileReader
  • Google App Engine 数据存储区,在更新几秒钟之前返回

    所以我需要在数据存储中更新值 我正在使用事务这样做 如下所示 提交更新后 我将结果发送回客户端 让他们知道更新已完成 然后 客户端发送另一个请求以获取更新的项目列表 据我所知 所有代码都正确执行 没有抛出任何错误 最终我确实得到了按预期显示
  • 如何拆分字符串而不在数组中插入空字符串

    假设存在匹配项 我在使用正则表达式从字符串中分割字符时遇到问题 我想从字符串的第一部分中分离出 m 或 f 字符 假设下一个字符是一个或多个数字 后跟可选的空格字符 后跟我拥有的数组中的字符串 I tried 2 4 0 006 gt MY
  • 写入堆内存时调用系统调用

    我知道 malloc sbrk 是调用的系统调用 同样 当我写入 malloed 内存 堆内存 时调用的系统调用是什么 int main 10 byte of heap memory allocated char ptr malloc 5
  • 使用 Javascript 更改元素的位置

    这应该会在每次循环时将段落 带有 id Text 的位置更改为更向右 但它不起作用 我不知道如何解决它 所以如果有人可以帮助我 我会很高兴 先感谢您 var x 0 d style position absolute function my
  • java中如何获取屏幕分辨率? [复制]

    这个问题在这里已经有答案了 可能的重复 屏幕分辨率java Hi Java中如何获取屏幕分辨率 您可以使用 AWT 工具包 Dimension screenSize Toolkit getDefaultToolkit getScreenSi
  • 尝试在 ScriptDb 中存储数组时出错

    我有一个由脚本创建的对象数组 我尝试将该数组复制到一个新数组中 然后使用以下函数将其存储在 scriptDb 中 function copyAndStore currentArray var db ScriptDb getMyDb var
  • 如何使用 iOS SDK 覆盖其他应用程序

    Android 拥有一项权限 允许应用程序通过浮动内容 覆盖其他应用程序 使用 SYSTEM ALERT WINDOW允许 iOS 有类似的东西吗 不 这是不可能的 用户只能与当前位于前台的任何应用程序进行交互
  • ElasticSearch NEST 5.6.1 单元测试的查询

    我向弹性搜索编写了一堆查询 我想为它们编写一个单元测试 使用这篇文章最小起订量弹性连接我能够进行一般性的嘲笑 但是当我尝试查看从查询生成的 Json 时 我没有设法以任何方式获取它 我尝试关注这篇文章弹性查询最小起订量 但它仅与旧版本的 N
  • AlarmManager 会在断电时删除所有计划吗?

    我已经在特定时间设置了闹钟 如果手机关机了闹钟会丢失吗 我已关闭手机 然后再次启动 但闹钟未在指定时间触发 PendingIntent pendingIntent PendingIntent getBroadcast Global a ge
  • 我应该使用 data.frame 还是矩阵?

    什么时候应该使用data frame 什么时候最好使用matrix 两者都以矩形格式保存数据 因此有时会不清楚 对于何时使用哪种数据类型有什么通用的经验法则吗 部分答案已包含在您的问题中 如果列 变量 预计为不同类型 数字 字符 逻辑等 则