R 中指定列数的矩阵的 rowsum

2023-12-26

我正在尝试获取 R 矩阵中某一行的列总和。但是,我不希望对整行进行求和,而只对指定数量的列进行求和,即在本例中对角线上方的所有列进行求和。我尝试过 sum 和 rowSums 函数,但它们要么给我奇怪的结果,要么给我错误消息。为了进行说明,请参阅下面 8x8 矩阵的示例代码。对于第一行,我需要除项目 [1,1] 之外的行的总和,对于第二行,我需要除项目 [2,1] 和 [2,2] 等之外的总和。

m1 <- matrix(c(0.2834803,0.6398198,0.0766999,0.0000000,0.0000000,0.0000000,0.0000000,0.0000000,
               0.0000000,0.1101746,0.6354086,0.2544168,0.0000000,0.0000000,0.0000000,0.0000000,
               0.0000000,0.0000000,0.0548145,0.9451855,0.0000000,0.0000000,0.0000000,0.0000000,
               0.0000000,0.0000000,0.0000000,0.3614786,0.6385214,0.0000000,0.0000000,0.0000000,
               0.0000000,0.0000000,0.0000000,0.0000000,0.5594658,0.4405342,0.0000000,0.0000000,
               0.0000000,0.0000000,0.0000000,0.0000000,0.0000000,0.7490395,0.2509605,0.0000000,
               0.0000000,0.0000000,0.0000000,0.0000000,0.0000000,0.0000000,0.5834363,0.4165637,
          0.0000000,0.0000000,0.0000000,0.0000000,0.0000000,0.0000000,0.0000000,1.0000000),
             8, 8, byrow = TRUE, 
             dimnames = list(c("iAAA", "iAA", "iA", "iBBB", "iBB", "iB", "iCCC", "iD"),
                  c("iAAA_p", "iAA_p", "iA_p", "iBBB_p", "iBB_p", "iB_p", "iCCC_p", "iD_p")))

我已经尝试过以下方法:

rowSums(m1[1, 2:8]) --> Error in rowSums(m1[1, 2:8]) : 
  'x' must be an array of at least two dimensions

或者:

sum(m1[1,2]:m1[1,8]) --> wrong result of 0.6398198 (which is item [1,2])

据我了解 rowSums 需要一个数组而不是一个向量(尽管不确定为什么)。但我不明白为什么使用 sum 的第二种方法不起作用。理想情况下,有某种方法可以仅对位于对角线上方的行中的所有列求和。

多谢!


问题是你没有将数组传递给rowSums:

class(m1[1,2:8])
# [1] "numeric"

这是一个数值向量。使用多行就可以正常工作:

class(m1[1:2,2:8])
# [1] "matrix"

rowSums(m1[1:2,2:8])
#     iAAA       iAA 
#0.7165197 1.0000000 

如果你想对对角线上方的所有列求和,那么你可以使用lower.tri将对角线下方的所有元素设置为0(也许NA)然后使用rowSums。如果您不想包含对角线元素本身,您可以设置diag = TRUE(感谢@Fabio 指出了这一点):

m1[lower.tri(m1 , diag = TRUE)] <- 0
rowSums(m1)
#     iAAA       iAA        iA      iBBB       iBB        iB      iCCC        iD 
#0.7165197 0.8898254 0.9451855 0.6385214 0.4405342 0.2509605 0.4165637 0.0000000 

#  With 'NA'
m1[lower.tri(m1)] <- NA
rowSums(m1,na.rm=T)
#     iAAA       iAA        iA      iBBB       iBB        iB      iCCC        iD 
#0.7165197 0.8898254 0.9451855 0.6385214 0.4405342 0.2509605 0.4165637 0.0000000 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 中指定列数的矩阵的 rowsum 的相关文章

  • 从 foreach 循环赋值

    我想并行化一个循环 例如 td lt data frame cbind c rep 1 4 2 rep 1 5 rep 1 10 2 names td lt c val id res lt rep NA NROW td for i in l
  • 将阿拉伯文本分配给 R 变量

    R 无法正确显示阿拉伯文本 当我使用阿拉伯语时 我得到了非常奇怪的东西 这是一个屏幕截图 问题是我想创建一个带有阿拉伯文本的词云 我需要首先解决这个问题 R 版本 R 2 15 2 GUI 1 53 Leopard 版本 64 位 6335
  • 使用facet时ggplot2控制每行的面板数量?

    Is it possible to control the number of panels per row in a ggplot I can only get an equal number of panels on each row
  • 在knitr中打印漂亮的交叉表

    我想要的是使用 R Markdown 和 knit 从 RStudio 打印漂亮的交叉表 无论是在 pdf 文件中 还是在 html 文件中 我怀疑我错过了一些非常明显的东西 因为我不敢相信这是如此困难 我使用 xtabs 或 ftable
  • 为什么安装的“igraph”包在加载后返回“libicui18n.so.58:无法打开共享对象文件”?

    我试图使用命令 install packages igraph 在 R 中安装 igraph 包 安装后 在测试阶段出现以下错误 测试是否可以加载已安装的包错误 包或命名空间 dyn load file DLLpath DLLpath 中的
  • 使用列表中的数据框:删除变量,添加新变量

    定义一个列表dats有两个数据框 df1 and df2 dats lt list df1 data frame a sample 1 3 b sample 11 13 df2 data frame a sample 1 3 b sampl
  • 在R中绘制3x3方形网格

    我得到了一个数字列表 n 9 想将它们画在一个 3 3 的正方形网格中 每个网格填充相应的数字 我如何在 R 中执行此操作而不安装额外的软件包 例如情节 非常感谢 这里有一个ggplot解决方案比我预期的要难一点 Setup the dat
  • 为什么 rbind 会抛出警告

    这与是否有更优雅的方法将不规则的数据转换为整洁的数据框 https stackoverflow com questions 25102617 are there more elegant ways to transform ragged d
  • left_join 表示列不存在,即使它存在

    我想用两个不同的变量 tp join 连接两个数据框 出现错误 表示无法在第二个数据帧中找到变量 但是当我运行函数 colnames 时 会显示列名称 为什么会这样呢 df new lt left join master settlemen
  • 在多面图中用 N 注释 x 轴

    我正在尝试生成一些按治疗条件和访问次数细分的数字结果的箱线图 每个框中的观察次数都放在图下方 并且也标记了访问次数 这里有一些虚假数据可以用来说明 我举了两个我尝试过但不太有效的例子 library ggplot2 library plyr
  • 根据列A:列B范围内的值查找数据框中的相应行[重复]

    这个问题在这里已经有答案了 我有一个 data frame 和一个向量 例如 df data frame id 1 3 start c 1 1000 16000 end c 100 1100 16100 info c a b c vec c
  • 为格子中的每个面板添加不同的独特标签

    很清楚如何在格子中标记面板 https stackoverflow com questions 8508269 how to label panels in lattice using panel text or ltext论据 但是 如果
  • 如何使用 tidyr 将向量中字符串中的每个字符分隔到一列中

    我想将向量中的每个字符串分成列 但我做不到 library tidyr library dplyr df lt data frame x c abe bas dds eer df gt separate x c A B C sep 1 我想
  • 数据表中的 NA

    我有一个data table其中包含一些组 我对每个组进行操作 有些组返回数字 其他组返回NA 因为某些原因data table很难将所有东西重新组合在一起 这是一个错误还是我误解了 这是一个例子 dtb lt data table a 1
  • 粘贴两个 data.table 列

    dt lt data table L 1 5 A letters 7 11 B letters 12 16 L A B 1 1 g l 2 2 h m 3 3 i n 4 4 j o 5 5 k p 现在我想粘贴列 A 和 B 以获得一个新
  • plot xts if (on == "years") { 中的错误:缺少 TRUE/FALSE 需要的值

    我正在尝试绘制 xts 对象 但出现有关年份的错误 xts 对象只有一个数值和一个 POSIXct 索引 下面的代码显示了 xts 和尝试绘图时的错误 关于需要对 xts 对象做什么才能正确绘制的任何想法 xTest lt as xts 3
  • dplyr 总结小计

    Excel 中数据透视表的一大优点是它们会自动提供小计 首先 我想知道 dplyr 中是否已经创建了任何可以实现此目的的东西 如果没有 实现它的最简单方法是什么 在下面的示例中 我按气缸和化油器的数量显示了平均排量 对于每组气缸 4 6 8
  • 将 mat3 转换为 mat4 的最简单方法

    我提取了 mat4 的左上角 3x3 旋转矩阵 glm mat4 model glm mat3 rot glm mat3 model 现在我想要单位矩阵 左上角是我的新 mat3 最简单的方法是什么 glm mat4 result resu
  • python 中的基本矩阵转置

    我尝试了 python 中矩阵转置的最基本方法 但是 我没有得到所需的结果 接下来是代码 A 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 print A def TS A B A for i in range len A
  • 如何在RcppParallel中调用用户定义的函数?

    受到文章的启发http gallery rcpp org articles parallel distance matrix http gallery rcpp org articles parallel distance matrix 我

随机推荐

  • 运行时从Jar文件加载资源

    我正在尝试从运行时添加的 Jar 文件加载资源 但没有走得太远 这是我的代码 常规 URL url new URL jar file out resource jar test resource def urlList lt lt url
  • sap abap 中系统忽略条件的循环

    我尝试应用带有条件的循环来总结相应的行 字段 其中条件应该是正确的 但在系统运行期间 程序忽略了条件并总结了所有行 有什么建议来解决这个问题吗 SELECT FROM LIPS INTO CORRESPONDING FIELDS OF TA
  • WebService 在 WebLogic 10.3 中不“可见”

    我目前正在尝试让我的应用程序提供网络服务 该应用程序使用 spring 并在 Weblogic 10 3 实例下运行 我按照 合同第一 的方法构建了网络服务 所以我基本上拥有的是生成的 WS 接口 该接口的实现 定义 servlet 绑定的
  • 从欧洲DTCO公司卡读取数据

    我需要能够从欧洲数字行车记录仪公司卡 智能卡 读取卡和公司识别数据 这些在文档中进行了描述委员会条例 EC No 1360 2002 http eur lex europa eu LexUriServ LexUriServ do uri O
  • Oracle 11g“绑定变量不存在”

    我在以下代码中收到 ORA 01006 绑定变量在第 15 行不存在 错误 DECLARE v search string varchar2 4000 OK v query str VARCHAR2 4000 match count int
  • 在 Web Deploy 工具中设置自动备份

    我一直在努力设置自动备份 但似乎遇到了困难 按照此document http www iis net learn publish using web deploy web deploy automatic backups 并使用 Power
  • 读取许多文件,计算一些内容,将结果保存在数据帧中(R)

    我有大约 100 个文件 长文件名 其中包含来自模拟的数据 主题是两种物质的降解 所以我有 3 个相关列 时间 物质 1 的相对浓度 Sub1 从 1 0 到零 和相对浓度 物质 2 Sub2 我想读取文件 确定每种基材 99 降解的时间
  • 将字节数组转换为对象

    C 有没有办法将纯字节数组转换为对象 例如给定这个类 class Data public int int1 public int int2 public short short1 public long long1 我希望基本上能够做这样的
  • 在 Android Studio 中运行 Python 脚本 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在运行 Android Studio 2 2 3 我需要在开发过程中运行 Python 脚本来处理一些数据文件 最终的APK不需要
  • 向 NSScrollView 添加大量视图

    我正在尝试添加一个子视图 来自NSViewController 对于字典中的每个元素NSScrollView获得某种表格视图 但对单元格具有更大的灵活性 是否可以 以编程方式 放置例如100 个子视图彼此放在一起 因此您必须向下滚动NSSc
  • 更新回收视图中的单个项目。我正在使用分页库并想更新单个项目/行

    我使用提交列表将 pagedlist 值传递给适配器 当我更新单个项目时 请考虑我正在点击回收器视图中的提要的类似按钮 如何更新单个项目 我正在按照这个例子进行分页实现 https github com saquib3705 PagingL
  • SignalR 不解析传入服务器调用的 JsonSerializer

    J原始值 https github com SignalR SignalR blob master src Microsoft AspNet SignalR Core Json JRawValue cs https github com S
  • 实体管理器是否需要关闭每个查询?

    我将在一年内使用 JPA 作为数据库框架使用 Java 开发系统 每次查询时 我都不关闭EntityManager IMO的理解是JPA自动关闭实体管理器执行查询后 getSingleResult or 获取结果列表 如果没有那么垃圾收集会
  • 为什么 ob_start('ob_gzhandler') 会破坏这个网站?

    我有一个网站 如果存在 ob start ob gzhandler 则会在浏览器中抛出内容编码错误 如果我删除该语句 它就可以正常运行 该站点与许多其他站点使用相同的框架 服务器和托管包 无论声明是否在其中 它们都有效 该语句位于框架中 而
  • SendMessage WM_SETTEXT 到 TextBox 不会触发 TextChanged 事件

    我有代码获取文本框控件的句柄并使用 Windows API 来更改文本 更新文本时不会触发 TextChanged 事件 有没有办法使用 Windows API 触发 TextBox TextChanged 事件 Update 我认为该事件
  • Microsoft SQL Server 2008 主键的含义

    主键的概念对于SQL Server数据库引擎有什么意义 我的意思不是在 ID 列上创建的聚集 非聚集索引 我的意思是约束对象 主键 存在与否有什么关系吗 备择方案 更改表添加主键聚集 更改表创建聚集索引 这有什么不同吗 一般来说 KEY 是
  • Python - Pyodbc 连接错误

    我正在尝试使用Python3 4连接到SQL Server数据库 这是适合我的代码 cnxn pyodbc connect DRIVER ODBC Driver 13 for SQL Server SERVER DESKTOP GDM2HQ
  • CSS 媒体查询有多慢?

    当我组织 CSS 时 我喜欢将相关样式保留在一起 页眉样式位于一个部分 页脚样式全部位于同一位置 等等 抱歉 OOCSS 拥护者 我最近一直在尝试针对较小 较大屏幕的媒体查询 为了与我的组织方案保持一致 我必须为代码的每个部分所针对的每个屏
  • 在 Win32 控制台应用程序中使用 ShutdownBlockRequestCreate

    阻止在 Windows 7 上运行的 Win32 控制台应用程序提前终止的正确方法是什么 Vista 推出后 有关方式发生了变化应用程序关闭 http msdn microsoft com en us library ms700677 28
  • R 中指定列数的矩阵的 rowsum

    我正在尝试获取 R 矩阵中某一行的列总和 但是 我不希望对整行进行求和 而只对指定数量的列进行求和 即在本例中对角线上方的所有列进行求和 我尝试过 sum 和 rowSums 函数 但它们要么给我奇怪的结果 要么给我错误消息 为了进行说明