apply() 并计算所有数据帧行的第一行的比例

2023-11-30

我有一个数据框,如下所示,列出了按车辆类型划分的受伤人数:

trqldnum <- data.frame(motorveh=c(796,912,908,880,941,966,989,984),
                       motorcyc=c(257,295,326,313,403,389,474,496),
                       bicyc=c(109,127,125,137,172,146,173,178))
trqldnum

#  motorveh motorcyc bicyc
#1      796      257   109
#2      912      295   127
#3      908      326   125
#4      880      313   137
#5      941      403   172
#6      966      389   146
#7      989      474   173
#8      984      496   178

目前我正在使用以下方法计算每种车辆类型第一行的比例:

trqldprop <- t(apply(trqldnum,1,function(x) {
                 x/c(trqldnum[1,1],trqldnum[1,2],trqldnum[1,3])
              }))
trqldprop

#  motorveh motorcyc    bicyc
#1 1.000000 1.000000 1.000000
#2 1.145729 1.147860 1.165138
#3 1.140704 1.268482 1.146789
#4 1.105528 1.217899 1.256881
#5 1.182161 1.568093 1.577982
#6 1.213568 1.513619 1.339450
#7 1.242462 1.844358 1.587156
#8 1.236181 1.929961 1.633028

这看起来有点难看,如果数据改变形状,我需要手动更改函数的分母。如果我尝试在 apply() 语句中使用以下内容,我最终会得到列表列表中的输出。

function(x) x/c(trqldnum[1,])

我希望最终得到上面的数据帧结果,但我只是陷入了混乱,试图弄清楚它。


将数据帧转换为矩阵并使用矩阵运算:

m <- as.matrix(trqldnum)

trqldprop <- as.data.frame( t(t(m)/m[1,]) )

> trqldprop
  motorveh motorcyc    bicyc
1 1.000000 1.000000 1.000000
2 1.145729 1.147860 1.165138
3 1.140704 1.268482 1.146789
4 1.105528 1.217899 1.256881
5 1.182161 1.568093 1.577982
6 1.213568 1.513619 1.339450
7 1.242462 1.844358 1.587156
8 1.236181 1.929961 1.633028

请注意,我们需要转置矩阵(参见t(m))因为当您将矩阵除以向量时,运算是按列完成的。

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

apply() 并计算所有数据帧行的第一行的比例 的相关文章

随机推荐

  • mysqli 使用 p: connect 选项打开多个新进程

    这是我第一次在这里提问 我搜索了 Google stackoverflow 等 寻求帮助解决我遇到的问题 我们目前使用 PHP 5 3 10 和 MySQL 5 0 95 以及 Apache 2 2 21 CentOS 我们正在开始从旧的
  • 云中的 Elastic Search 集群

    我有 2 个 Linux VM 均位于云提供商的同一数据中心 Elastic1 和 Elastic2 其中 Elastic 2 是 Elastic 1 的克隆 两者都有相同的 centos 版本 相同的集群名称和相同的 ES 版本 Elas
  • 在R中绘制椭圆/双曲线

    我想在R中画椭圆 双曲线 我该如何使用 ggplot2 来做到这一点 让我举个例子 x 2 3xy 4x 2y 2y 2 0 for x between 2 and 2 y between 2 and 2 构造数据字段 d lt trans
  • 提供者与Oracle客户端版本不兼容

    我正在尝试使用Oracle ODP NET 11g 11 1 0 6 20 即时客户端在我的 ASP net 项目中数据提供者但是当我运行 aspx 页面时 我得到一个 提供者与Oracle客户端版本不兼容 错误消息 任何帮助将不胜感激 我
  • 由于放弃的提交而导致 Git 合并挂起

    我有两个提交 提交 B 依赖于提交 A 提交 A 被放弃 现在我在合并 B 时遇到错误 它说已提交 由于 B 对 A 的依赖而合并待处理 我用谷歌搜索过但找不到确切的答案 我需要一步一步的解决方案 因为我是 git 的新手 并且很难理解如何
  • 将 Dagger 与 java 11 和 Maven 一起使用

    Google Dagger DIF 是否适用于 java 11 如果不是 鉴于不可能将项目更改为使用 java 8 那么替代方案是什么 是的 可以将 dagger 2 32 与 maven 和 java 11 一起使用 我遇到了编译过程和
  • SQL 格式时间对象从 24 小时到 12 点

    有没有办法在 SQL 中将时间对象转换为 12 小时格式 我不能使用日期时间 因为检索的数据不是特定于日期的 16 45 00 gt 下午 4 45 尝试使用这个 DECLARE aux NVARCHAR 8 16 45 00 SELECT
  • 可能的空引用返回c# linq

    我有这个 linq 查询 它抱怨警告消息 警告 CS8603 可能返回空引用 Code return await applicationDbContext Pies Include x gt x Portions AsSingleQuery
  • Secrets 模块如何在 Python 中生成完美的随机序列

    现在我对数学有了相当的了解 并且我知道可以使用特定的数学算法创建伪随机序列 我还知道在Python中有一个secrets显然可以产生随机数的模块 我尝试对其进行一些调整 但我仍然不明白它应该如何工作 我们来说一下这段代码 import se
  • 使用 lodash 重塑 JSON 并减少

    我想根据从 URL 下载的已解析 CSV 文件重塑 JSON 我使用 csvtojson 模块来解析 CSV 并创建需要重新整形的 JSON 下面是我的完整代码 const require lodash to handle datetime
  • 在 Tkinter 中使用按钮调用函数后返回值

    from Tkinter import from tkFileDialog import askopenfilename from PIL import Image def main filename askopenfilename fil
  • 查找与给定数字最接近的数字之和

    假设我有一个列表 1 2 3 4 5 6 7 我想找到最接近给定数字的数字之和 抱歉 这个解释很糟糕 但这里有一个例子 假设我有一个列表 1 2 3 4 5 6 7 我想找到最接近 10 的数字 那么该方法应该返回 6 和 4 或 7 和
  • 我们如何在 Android 上的 HttpClient 4.4+ 中启用 SNI?

    我正在尝试制定在现代版本的 Android 上将 SNI 与主要 HTTP 堆栈结合使用的方法 这包括 Apache 的单独 HttpClient 库 not该版本嵌入到 Android 本身中 但 Android 已经死亡并消失了 最新版
  • 在路由子集上激活的 Express.js 会话

    我正在使用expressjs 并希望使用会话对用户登录进行身份验证 站点 应用程序一方面应允许用户在无状态网页中浏览和调查不同的产品和信息 从而允许缓存这些页面 但另一方面应具有让用户登录和访问使用会话获取的不同内容的功能 因此 对于我的路
  • 听到来自麦克风的传入音频

    我只想听听我使用 NAudio 对麦克风说的话 这是我到目前为止的代码 但问题是我听不到任何声音 任何帮助 将不胜感激 public partial class frmMain Form private WaveIn waveIn Gets
  • Spring Security CSRF 令牌不适用于同一 JSP 中的 AJAX 调用和表单提交

    我正在尝试通过参考以下链接在我的项目中实现 spring security 版本 3 2 3 CSRF 令牌 http docs spring io autorepo docs spring security 4 0 0 CI SNAPSH
  • 应用程序无法从 Android Marketplace 安装在 Motorola Xoom 上

    我的 Android 应用程序无法从 Android Marketplace 安装在 Motorola Xoom 上 我已按照可用的说明进行操作here 无济于事 这是我的清单
  • 在 VSTS 上使用 GAC_MSIL 程序集时出现错误

    我有一个 ASP Web 表单项目存储在 VSTS 中 我正在尝试构建它 突然我在构建部分遇到了这个错误 2017 04 18T22 01 20 3859517Z Build FAILED 2017 04 18T22 01 20 38595
  • 对于给定的遍历 gremlin 查询,如何在所有访问过的节点/边上应用静态步骤

    我们将用户权限标记为每个节点和边上的属性 SET 基数 想知道对于给定的遍历 gremlin 查询 在所有访问过的节点 边上应用 has 步骤的最佳方法是什么 就像一个非常简单的遍历查询 从伦敦希思罗机场 LHR 飞往美国机场的航班 g V
  • apply() 并计算所有数据帧行的第一行的比例

    我有一个数据框 如下所示 列出了按车辆类型划分的受伤人数 trqldnum lt data frame motorveh c 796 912 908 880 941 966 989 984 motorcyc c 257 295 326 31