如何在R中创建对角矩阵?

如何在R中创建对角矩阵?,r,R,我有一个excel文件,其中包含250张表格(第一张表格包含250行11列,第二张表格包含249行11列,第三张表格包含248行11列,以此类推)。我只需要创建对角线矩阵的所有表中第11列的值。我想,首先我必须将第11列值从excel文件导入R。基于这些值,我必须创建一个对角矩阵。请帮助我您可以使用矩阵库中的对角线函数;只需传入维度和值(似乎是电子表格第11列中的内容): (注意:矩阵需要通过调用库显式导入,但没有单独安装,因为它似乎包含在R安装中)您可以使用矩阵库中的对角线功能;只需传入维度和

我有一个excel文件,其中包含250张表格(第一张表格包含250行11列,第二张表格包含249行11列,第三张表格包含248行11列,以此类推)。我只需要创建对角线矩阵的所有表中第11列的值。我想,首先我必须将第11列值从excel文件导入R。基于这些值,我必须创建一个对角矩阵。请帮助我

您可以使用矩阵库中的对角线函数;只需传入维度和值(似乎是电子表格第11列中的内容):

(注意:矩阵需要通过调用库显式导入,但没有单独安装,因为它似乎包含在R安装中)

您可以使用矩阵库中的对角线功能;只需传入维度和值(似乎是电子表格第11列中的内容):


(注意:矩阵需要通过调用库显式导入,尽管没有单独安装,因为它似乎包含在R安装中)

根据您所描述的,您确实需要一个三角形矩阵,我将演示如何创建上三角形矩阵:

步骤1:创建矩阵以接收结果:

mat <- matrix(NA, ncol=250, nrow=250)
第三步:在250张纸上循环并放入矩阵行

for(idx in 1:250 ) { 
   intemp <- read.xls(xlsfilename, sheet = idx )
   mat[ idx, (251-idx):250] <- intemp[1:idx, 11]
         }
for(idx在1:250中){

intemp根据您所描述的,您确实需要一个三角形矩阵,我将演示如何创建一个上三角形矩阵:

步骤1:创建矩阵以接收结果:

mat <- matrix(NA, ncol=250, nrow=250)
第三步:在250张纸上循环并放入矩阵行

for(idx in 1:250 ) { 
   intemp <- read.xls(xlsfilename, sheet = idx )
   mat[ idx, (251-idx):250] <- intemp[1:idx, 11]
         }
for(idx在1:250中){

intemp出于某种奇怪的原因,谷歌查询“r对角矩阵”将我指向了这个页面,因此我认为在这里回答这个问题是合理的

在R中执行此操作的最基本方法是使用函数diag:

diag(1, 4, 4)
给出:

     [,1] [,2] [,3] [,4]
[1,]    1    0    0    0
[2,]    0    1    0    0
[3,]    0    0    1    0
[4,]    0    0    0    1

出于某种奇怪的原因,谷歌查询“r对角矩阵”将我指向这个页面,因此我认为在这里回答这个问题是合理的

在R中执行此操作的最基本方法是使用函数diag:

diag(1, 4, 4)
给出:

     [,1] [,2] [,3] [,4]
[1,]    1    0    0    0
[2,]    0    1    0    0
[3,]    0    0    1    0
[4,]    0    0    0    1

一些非常基本的谷歌搜索出现在
gdata
包和
diag
中,用于创建对角矩阵。一些非常基本的谷歌搜索出现在
gdata
包和
diag
中,用于创建对角矩阵。非常感谢您的回答。I尝试了您的代码。使用您的代码如何从250张表格中获取上下三角形值,即第11列值。这些值在每张表格中都不同?请您解释一下。通过阅读您的问题,我不确定您希望如何将电子表格值映射到R中的矩阵。也许最简单的方法是创建“compl”ete'矩阵,然后调用tril()(下三角)或triu()非常感谢您的回答。我尝试了您的代码。使用您的代码如何从250张表格中获取上下三角形值,即第11列值。这些值在每张表格中都不同?请您解释一下。通过阅读您的问题,我不确定您希望如何映射电子表格R中的矩阵的值。也许最简单的方法是创建“完整”矩阵,然后调用tril()(下三角)或triu()非常感谢你的回答。这个通用公式对于把你想要的任何东西放在对角线上都是有用的,但是如果你只想要一个简单的4乘4的单位矩阵,你可以简单地写
diag(4)
。就像
diag(1,4)
,(允许对角线上除1以外的数字,但可以保存两个完整字符!)此通用公式可用于在对角线中放置任何需要的内容,但如果您只需要一个简单的4乘4单位矩阵,您可以简单地编写
diag(4)
。就像
diag(1,4)
,(允许对角线上除1以外的数字,但保存两个完整字符!)