在 R 中创建市场篮子矩阵的有效方法

2024-01-05

我正在尝试根据如下数据创建一个市场篮子矩阵:

input <- matrix( c(1000001,1000001,1000001,1000001,1000001,1000001,1000002,1000002,1000002,1000003,1000003,1000003,100001,100002,100003,100004,100005,100006,100002,100003,100007,100002,100003,100008), ncol=2)

这代表以下数据:

colnames(input) <- c( "Customer" , "Product" )

由此创建一个矩阵,其中将客户作为行,将所有产品作为列。这可以通过首先创建带有零的矩阵来实现:

input <- as.data.frame(input)
m <- matrix(0, length(unique(input$Customer)), length(unique(input$Product)))
rownames(m) <- unique(input$Customer)
colnames(m) <- unique(input$Product)

这一切都足够快(有 750 000 多行数据,创建一个 15000 x 1500 矩阵),但现在我想在适当的地方填充矩阵:

for( i in 1:nrow(input) ) {
    m[ as.character(input[i,1]),as.character(input[i,2])] <- 1
}

我认为必须有一种更有效的方法来做到这一点,正如我从 stackoverflow 了解到的那样,for 循环通常可以避免。那么问题来了,有没有更快的方法呢?

我需要矩阵中的数据,因为我想使用插入符之类的包。之后我可能会遇到与这里相同的问题R 内存管理建议(插入符、模型矩阵、数据框) https://stackoverflow.com/questions/6449588/r-memory-management-advice-caret-model-matrices-data-frames,但这是以后要关心的问题。


你真的不需要reshape2为了这;table就是您正在寻找的。

m1 <- as.matrix(as.data.frame.matrix(table(input)))

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

在 R 中创建市场篮子矩阵的有效方法 的相关文章

  • 保存/加载 data.table 的最快方法

    我想做的实际上是使用最快的可用方法来存储data table以便进一步处理 大致如下 从 CSV RDS 读取原始数据 将其转换为data table 将其保存为针对重新读取而优化的格式 RDS 似乎不适用于data table 是对的吗
  • R 中具有 NA 值的聚合栅格

    我在 R 中有一个分辨率为 1 公里的栅格 其 NA 值分布广泛 但位置不规则 即 包含数据的单元格不连续 并且 NA 值分散 我正在尝试使用用户定义的平均圆角函数 包括在下面 以 5 公里分辨率 因子 5 聚合此栅格 使用 raster
  • 替换为 NA

    我有一个包含条目的数据框 看来这些值没有被视为 NA 因为 is na 返回 FALSE 我想将这些值转换为 NA 但找不到方法 Use dfr dfr
  • 有没有办法将字母扩展到超过 26 个字符,例如 AA、AB、AC...?

    我大部分时间都使用字母来表示我的因素 但今天我尝试超过 26 个字符 LETTERS 1 32 期待有自动递归因式分解 AA AB AC 但很失望 这只是字母的限制还是有办法使用其他函数来获取我正在寻找的内容 702够吗 LETTERS70
  • 匹配向量内的向量

    I have vec1 lt c 0 0 0 1 1 0 1 1 1 0 0 1 vec2 lt c 1 1 我预计 magicFUN x vec1 y vec2 1 4 7 8 这意味着我想要一个完整向量在另一个向量内的位置 match
  • 抑制 r markdown 中的控制台输出,但保留绘图

    嗨 我有以下降价块 r echo FALSE warning FALSE message FALSE error FALSE lapply obj function x plot x main some plot box axis 1 at
  • 添加不同的标签以在 ggplot R 中的堆积条形图中显示总计?

    我的问题有点类似 如何添加文本标签以显示ggplot中堆叠比例条的每个条中的总数n https stackoverflow com questions 65201095 how to add text label to show total
  • 如何编写一个也接受字符输入的 NES 函数?

    我正在开发一个将字符串作为函数参数的 R 包 现在我想使用非标准评估来允许非字符串输入 另外 为了保持向后兼容性 我想保留函数接受字符串的可能性 哈德利给出了example https cran r project org web pack
  • 为闪亮的应用程序创建桌面图标

    当我在基本 R 提示中提供以下代码时 我会在浏览器中打开一个闪亮的应用程序 shiny runApp C Myapp 我使用 Windows 7 我试图创建一个桌面图标 以避免我的客户每次想要使用该应用程序时都键入上述代码 我创建了一个桌面
  • 如何使用 ggplot 绘制矩阵图

    我想可视化一个矩阵 MAT lt matrix c 100 7 0 0 49 0 0 0 49 nrow 3 ncol 3 gt MAT 1 2 3 1 100 7 0 2 0 49 0 3 0 0 49 然而 标准方法不能正确地对小数字进
  • 两个闪亮的操作按钮

    我正在编写一个闪亮的函数 其中包含两个操作按钮 这两个按钮是左右按钮 单击时可以帮助绘图移动 第一次单击时 这两个按钮都工作正常 当我重新单击它们时 就会出现问题 无论我单击哪个按钮 它都会在两个范围之间来回弹跳 我猜可能是 右 和 左 按
  • R 中整数向量的大小

    我原以为 R 有一个用于存储对象的标准开销 看起来是 24 字节 至少对于整数向量而言 但一个简单的测试表明它比我意识到的要复杂 例如 采用长度为 100 的整数向量 使用随机采样 希望避免任何可能存在的偷偷摸摸的序列压缩技巧 https
  • 在 R 中使用科学记数法和 xtable

    我将 data frame 传递给 xtable dat table lt xtable dat 1 20 digits 10 我宁愿使用科学记数法 而不是像那样显示数字 我该怎么做呢 看过了 但我发现的只是R 格式化xtable中的数字
  • 对 R/Sweave 进行编程以获得正确的 \Sexpr 输出

    我在为 Sweave 进行 R 编程时遇到了一些问题 rstats twitter 小组经常指出这里 所以我想我应该把这个问题向大家提出 我是一名分析师 而不是程序员 所以在我的第一篇文章中请放轻松 问题是 我正在使用 R 在 Sweave
  • 在 R 绘图上使用鼠标书写?

    我使用创建了散点图plot R 中的函数 有没有可能在这个图上画图 我想添加一条直线并获取它的参数 但在我看来abline 可能会很不方便 我想画很多条线 然后选择一条最合适的 我怎样才能完成这个任务 看看 RStudio 和这个例子 li
  • 如何连接 R 列表中的多个 .wav 文件?

    我有一个 wav 文件列表my list library seewave library tuneR data tico audio lt tico freq lt 22050 breaks lt c 0 0 2 0 4 0 6 0 8 i
  • ggplot2:图例中的斜体

    我正在尝试编辑图例中的标签 以便第一个标签 WT 为纯文本 而后续 7 个标签为斜体 我一直在使用element text face c plain rep italic 7 但这导致没有任何标签被转换为斜体 我有点困惑为什么它不起作用 因
  • 在 R 中高效加载稀疏矩阵

    我在将数据有效加载到 R 中的稀疏矩阵格式时遇到问题 这是我当前策略的 不完整 示例 library Matrix a1 Matrix 0 5000 100000 sparse T for i in 1 5000 a1 i idxOfCol
  • 用于检查和批量线性模型的数据表选项

    我想知道是否有data table用于从数据集中批量处理线性模型并首先进行检查的选项 我需要对每个唯一标识符运行一堆线性模型 但首先我需要进行检查 对于每个唯一的 id 和年份 我需要检查是否有至少 24 个月的先前每月数据 但不超过 60
  • 修改x轴刻度标签

    我正在尝试更改由生成的箱线图的 x 轴刻度标签ggplot2 x 轴是一个分类变量 HabFac 我想要的是将其刻度更改为 6 个化学品 A E 下面是我的代码 raw data read table Read data p TT ggpl

随机推荐

  • Android 4.4.2 中 Google API(x86 系统映像)和 Google API(ARM 系统映像)之间的差异

    我正在关注这个 http developer android com google play services setup html Install http developer android com google play servic
  • 只读内存和堆内存

    AFAIK 在 C 语言中 字符串文字存储在只读存储器中 它实际上存在于硬件上的什么位置 根据我的知识堆在 RAM 上 如果我错了 请纠正我 堆和只读内存有什么不同 它依赖于操作系统吗 这通常是在硬件辅助下完成的 可以告诉硬件的虚拟内存子系
  • 如何防止对我的用node.js编写的http服务器进行DOS攻击?

    使用node js 用于构建可以处理http请求的tcp服务器的net模块 我想防止 ddos 攻击 所以我所做的是这样的 if status numOfCurrentRequests 1 gt MAX NUM OF CONNECTIONS
  • 如何在CSS中创建双底边框

    我想在标题底部创建一个双边框 其中有两条不同粗细的线 其间有 1px 的空间 具体来说 顶线的厚度为 2px 底线的厚度为 1px 这是我想要达到的美学目标的图像示例 其他使用此设计方面的网站 http www rollingstone c
  • MSBuild 使用凭据调用 Powershell

    我正在尝试使用运行 Powershell 命令的 MSBuild 脚本来部署 Windows 服务 MSBuild 脚本部署我需要的文件 PowerShell 脚本将使用以下命令卸载并重新安装 Windows 服务 Invoke Comma
  • 使用参数循环进行量角器测试

    我有一组几乎完全相同的烟幕测试 我想将它们放入循环中并在参数数组中循环 但是 测试是异步运行的 因此循环在测试运行之前完成 这导致测试对第 8 个参数运行 8 次 而不是每个参数运行一次 describe Admin Console Cam
  • AngularJS 中的简单 dom 操作 - 单击按钮,然后将焦点设置到输入元素

    我有这个角度代码 div class element wrapper div class first wrapper div class button element name div div div class second wrappe
  • Android - 尝试添加图像时会创建空白图像

    我使用的是Android Studio 1 5 我正在尝试做一些非常简单的事情 向我的项目添加一个大图像 我将使用它作为我的 MainActivity 的背景 当我右键单击 res gt Add gt Image Asset 并选择 操作栏
  • Google Admin SDK Push API 发送“同步”网络钩子,但仅此而已

    我的应用程序使用推送通知 API 在文档中也称为频道订阅或 Webhooks 和报告 API 来获取有关身份验证令牌的实时更新 每 6 小时 我们的应用程序就会发出一个请求https www googleapis com admin rep
  • 为什么子进程忽略 PATH,我该如何更改它?

    我需要更改 Python 应用程序调用的程序 很遗憾我无法更改 Python 代码 我只能改变调用环境 特别是 PATH 但不幸的是Python的子进程模块似乎忽略了PATH 至少在某些情况下 我怎样才能强迫Python尊重PATH当搜索要
  • 分布式MAKE

    我之前有一个 MAKE 编译过程 大约需要 1 小时才能完成 我使用 j 命令并能够将其减少到 40 分钟 我观察到 CPU 利用率很高 我的导师建议我将作业分配到我们组织可用的不同服务器或机器上 我读过有关 distcc 的内容 但它只能
  • Ruby 数组 - 求对角线之和

    以前没见过这个 但我想知道如何在 Ruby 中找到 2D 数组的两个对角线之和 假设您有一个简单的数组 包含 3 行和 3 列 array 1 2 3 4 5 6 7 8 9 我可以使用以下方法将其分成三组 array each slice
  • Android - 如何知道mapView是否正确加载?

    我在检测我的 Android 地图应用程序中是否加载了 MapView 时遇到了麻烦 在OnCreate方法中 当我分配地图URL时 我想知道是否发生了任何问题 由于我的互联网连接或任何其他问题 例如从 REST 服务加载地图 可能会出现问
  • 如何从服务器下载XML文件并将其保存到SD卡中?

    在我的应用程序中 我尝试从服务器下载 XML 文件并将其存储在 SD 卡中 为此 我使用以下代码 try File root android os Environment getExternalStorageDirectory File d
  • Swift 中单例类的委托

    如何使用单例 共享类的委托方法 有一个单例类定义了一些协议 但我不知道如何访问其他类中的委托函数 供参考的代码片段 swift protocol AClassDelegate func method1 class A static let
  • 共享意图不适用于将视频上传到 YouTube

    我正在尝试共享正在创建并存储在外部 SD 卡上的视频 其路径已通过获取 Environment getExternalStoragePublicDirectory Environment DIRECTORY MOVIES getAbsolu
  • 通过一个脚本为 apache 提供域下的所有路径

    我通过一家托管公司 1 在 Linux apache 服务器上托管一个网站 到目前为止 我通过一个带参数的脚本提供不同的内容 示例网址是 www mydomain com pages php date 1 10 2008 现在我想将 url
  • InetAddress.getByName 在代理后面失败

    我正在尝试将主机名解析为其相应的 IP 我的环境是公司网络中代理服务器后面的一台 Mac 通过系统首选项 自动代理配置 配置了 pac 文件 到目前为止 一切工作正常 我可以访问公司网络内部和外部的资源 解析我的网络中的主机工作得很好 In
  • 如何确定 Rails 3 中 ActiveRecord 关联的范围?

    我有一个 Rails 3 项目 Rails 3 带来了 Arel 以及重用一个范围来构建另一个范围的能力 我想知道在定义关系时是否有办法使用范围 例如 has many 我有带有权限列的记录 我想构建一个 default scope 来考虑
  • 在 R 中创建市场篮子矩阵的有效方法

    我正在尝试根据如下数据创建一个市场篮子矩阵 input lt matrix c 1000001 1000001 1000001 1000001 1000001 1000001 1000002 1000002 1000002 1000003