R 中数据帧的稀疏矩阵

2024-07-01

我有一个稀疏矩阵

Formal class 'dgCMatrix' [package "Matrix"] with 6 slots
  ..@ i       : int [1:37674] 1836 2297 108 472 1735 1899 2129 2131 5 67 ...
  ..@ p       : int [1:3417] 0 2 8 22 25 35 44 45 45 47 ...
  ..@ Dim     : int [1:2] 3416 3416
  ..@ Dimnames:List of 2
  .. ..$ : chr [1:3416] "AAA" "AAE" "AAL" "AAN" ...
  .. ..$ : chr [1:3416] "AAA" "AAE" "AAL" "AAN" ...
  ..@ x       : num [1:37674] 1 1 1 1 1 1 1 1 1 1 ...
  ..@ factors : list()

将此矩阵转换为列表的快速方法是什么(除了for loop):

Origin Destination Weight
AAA AAE 4
AAL AAN 5

注意:我只需要获取重量>0的出发地和目的地


Using summary,这是一个例子:

mat <- Matrix(data = c(1, 0, 2, 0, 0, 3, 4, 0, 0), nrow = 3, ncol = 3,
              dimnames = list(Origin      = c("A", "B", "C"),
                              Destination = c("X", "Y", "Z")),
              sparse = TRUE)
mat
# 3 x 3 sparse Matrix of class "dgCMatrix"
#    Destination
#     X Y Z
#   A 1 . 4
#   B . . .
#   C 2 3 .

summ <- summary(mat)
summ
# 3 x 3 sparse Matrix of class "dgCMatrix", with 4 entries 
#   i j x
# 1 1 1 1
# 2 3 1 2
# 3 3 2 3
# 4 1 3 4

data.frame(Origin      = rownames(mat)[summ$i],
           Destination = colnames(mat)[summ$j],
           Weight      = summ$x)
#   Origin Destination Weight
# 1      A           X      1
# 2      C           X      2
# 3      C           Y      3
# 4      A           Z      4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 中数据帧的稀疏矩阵 的相关文章

  • 将嵌套 for 循环转换为 R 中的并行循环

    下面您可以在 R 中找到一段代码 我想将其转换为使用多个 CPU 作为并行进程运行 我尝试使用foreach包 但并没有走得太远 考虑到我有 3 级嵌套循环 我找不到一个很好的例子如何让它工作 我们将非常感谢您的帮助 下面的代码示例 我做了
  • R 中的因素:不仅仅是烦恼?

    R 中的基本数据类型之一是因子 根据我的经验 因素基本上是一种痛苦 我从不使用它们 我总是转换为字符 我感觉很奇怪 好像我错过了什么 是否有一些使用因子作为分组变量的函数的重要示例 其中因子数据类型变得必要 当我should使用因素 你应该
  • int NA 的内部表示[重复]

    这个问题在这里已经有答案了 这是关于 R 内部结构的问题 R 中如何表示整数 NA 值 与浮点不同 没有神奇的位序列来表示 NaN Create big array newer versions of R won t allocate me
  • 基于 R 中多个现有列的计算的新列

    R df orginal 中的原始数据框 AB CD EF GH A 0 12 M A 0 13 F A 0 14 F A 1 16 M A 1 17 F A 1 18 M A 1 18 M A 2 0 78 M A 2 0 12 M A
  • update() 具有局部协变量的函数内的模型

    我需要从函数内部更新回归模型 理想情况下 该函数应该适用于任何类型的模型 lm glm multinom clm 更准确地说 我需要添加函数内部定义的一个或多个协变量 这是一个例子 MyUpdate lt function model ra
  • 用 R 求解非平方线性系统

    如何用 R 求解非平方线性系统 A X B 系统无解或有无穷多个解的情况 例子 A matrix c 0 1 2 3 5 3 1 2 5 2 1 1 3 4 T B matrix c 17 28 11 3 1 T A 1 2 3 4 1 0
  • osmar::get_osm() 下载 OSM 数据失败时出错:SYSTEM 或 PUBLIC,缺少 URI

    我正在关注一个tutorial https journal r project org archive 2013 RJ 2013 005 RJ 2013 005 pdf关于如何使用osmar包在R中下载OSM数据 所以代码是 library
  • RStudio/ R 上的 Tensorflow 设置 |中央操作系统

    在过去的 5 天里 我试图让 Keras Tensorflow 包在 R 中工作 我使用 RStudio 进行安装并使用conda miniconda virtualenv但最后每次都会崩溃 安装库不应该是一场噩梦 尤其是当我们谈论 R 时
  • R 中的波形符(~) 运算符

    根据 R 文档 运算符在公式中用于分隔公式的右侧和左侧 右侧是自变量 左侧是因变量 我了解 lm 包中何时使用 然而以下是什么意思呢 x 1 右边是1 什么意思 可以是除 1 之外的任何其他数字吗 From lm 拟合线性模型时 y x 1
  • 从任何统计测试中获取单个值(例如,从 cor.test 中获取 Spearman rho 的值)

    R 中的统计测试输出许多描述 虽然它们很有用 但我们如何才能输出或提取单个值 gt cor test x y method spearman exact F Spearman s rank correlation rho data x an
  • 按成员列表的长度对列表列表进行排序

    我有来自作为 S4 对象类型的包 apcluster 的输出 其中一个成员是确定找到的每个簇的成员的列表列表 我想按长度 最大的簇 对该列表进行排序 我的代码现在看起来像 ap result lt apcluster args cluste
  • 将函数参数传递给公式

    我试图理解为什么 foo function d y x fit with d lm y x foo myData Y X 不起作用 例如 myData data frame Y rnorm 50 X runif 50 对我来说似乎棘手的一点
  • 将 geom_text 与 ggplot2 中的 geom_vline 对齐

    I used vjust作为解决方法并详细阐述 通过尝试和错误可以接受的距离 但这有时非常耗时且变化 与字体大小和轴比例 有没有更好的方法来自动对齐示例中的文本 library ggplot2 ggplot data mtcars aes
  • 风玫瑰与 ggplot (R)?

    我正在寻找使用 ggplot2 来创建的良好 R 代码 或包 风玫瑰 http en wikipedia org wiki Wind rose显示风的频率 强度和方向 我对 ggplot2 特别感兴趣 因为以这种方式构建绘图使我有机会利用其
  • ggplot2 每个美学的多个尺度/图例,重新审视[重复]

    这个问题在这里已经有答案了 我有一个例子 我想使用 ggplot 突出显示序列比对的几个属性 我正在使用 geom tile 并希望为两个分数属性提供两组不同颜色的图块 我只能想象一个 我意识到每种审美的一个尺度的限制 以及其背后的逻辑 h
  • 添加标签以绘制 R 中的特定值

    我使用以下数据集创建一个图 并且我想仅为 DisplayName 列中标有 T 的点添加标签 Probe Name DisplayName X Y bob1 A 0 53 989643 7935 185 bob2 B T 55 11423
  • R 闪亮动态输入

    我想构建一个 R 闪亮应用程序 它具有动态输入 要求用户输入数字 然后根据该输入生成另外 4 个输入字段 这就是我的想法 library shiny Define UI for random distribution application
  • 有没有一种有效的方法来用零填充矩阵的所有边?

    我正在使用以下方法对图像进行纹理合成Efros 和 Leung 算法 http graphics cs cmu edu people efros research synthesis html 我的目标是增加当前纹理图像的大小 为此 我想在
  • 使用其他数据填充缺失值?

    A lt data frame Item A c 00EF 00EF 00EF 00EF 00EF 00FR 00FR Item B c NA NA NA NA JAMES RIVER NA NA B lt data frame Item
  • groupCheckboxInput 的组标题

    In shinywidgets pickerInput您可以传递指定的数据列表 此处 nms to pickerInput从列表中创建标题和选项 例如 library shiny library shinyWidgets nms list

随机推荐