使用R中的方程式将值插入矩阵

使用R中的方程式将值插入矩阵,r,matrix,R,Matrix,我需要使用方程将值插入到R中的矩阵中。每次这样做,我都会得到错误“下标超出范围” 编辑:以下是我尝试的结果 例如: matrix[“60”,“70”]=1在矩阵中名为“60”的行和名为“70”的列中输入值1 矩阵[lakes[k],lakes2[k]]=1给出了错误 我仔细检查了一遍,然后分别给我60和70。我试着在湖[k]和湖[k]周围放置” > k=2 > lakes[k] [1] 70 > lakes2[k] [1] 60 > lakes_matrix[lakes[

我需要使用方程将值插入到R中的矩阵中。每次这样做,我都会得到错误“下标超出范围”

编辑:以下是我尝试的结果

例如:
matrix[“60”,“70”]=1
在矩阵中名为
“60”
的行和名为
“70”
的列中输入值
1

矩阵[lakes[k],lakes2[k]]=1
给出了错误

我仔细检查了一遍,然后分别给我
60
70
。我试着在
湖[k]
湖[k]
周围放置

> k=2
> lakes[k]
[1] 70
> lakes2[k]
[1] 60
> lakes_matrix[lakes[k],lakes2[k]] = 1
Error in `[<-`(`*tmp*`, lakes[k], lakes2[k], value = 1) : 
  subscript out of bounds
> lakes_matrix["70","60"] =1
> lakes_matrix
     25 63 1567 40 50 60 70 80
25   NA NA   NA NA NA NA NA NA
63   NA NA   NA NA NA NA NA NA
1567 NA NA   NA NA NA NA NA NA
40   NA NA   NA NA NA NA NA NA
50   NA NA   NA NA NA NA NA NA
60   NA NA   NA NA NA NA NA NA
70   NA NA   NA NA NA  1 NA NA
80   NA NA   NA NA NA NA NA NA
>k=2
>湖泊[k]
[1] 70
>湖泊2[k]
[1] 60
>湖泊矩阵[湖泊[k],湖泊2[k]]=1
`[lakes_矩阵[“70”,“60”]=1中的错误
>lakes_矩阵
25 63 1567 40 50 60 70 80
25钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠
63娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜
1567不,不,不,不,不
40娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜娜
50纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳
60纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳
70钠钠钠钠钠钠钠钠钠钠钠
80钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠钠

使用括号表示法进行子集时,R解释命令的方式将根据您传递的是
character
类型的值还是
numeric
类型的值而有所不同。在第一个示例中,您传递了两个
character
类型的值

lakes_matrix["70","60"]
这将返回名为的行和名为的列的单元格的值。它将在
行名(lakes\u矩阵)
列名(lakes\u矩阵)
中搜索匹配项

但是,在第二个示例中,向量
lakes
的值类型为
numeric
(您可以看到这一点,因为它们打印时没有引号)。因此这两个语句是相同的

lakes_matrix[lakes[k],lakes2[k]] 
lakes_matrix[70, 60] 
当您提供数字时,R按索引子集。因此它尝试返回第70行和第60列的值。由于
lakes_matrix
只有8行和8列,因此该值不存在,并返回
下标超出范围的错误



您可以使用
as.character
lakes
的值更改为type
character
当使用括号表示法进行子集时,R解释命令的方式将根据您传递的值类型
character
或type
numeric
而有所不同。在第一个示例中,传递的是2类型
字符的值

lakes_matrix["70","60"]
这将返回名为
的行和名为
的列的单元格的值。它将在
行名(lakes\u矩阵)
列名(lakes\u矩阵)
中搜索匹配项

但是,在第二个示例中,向量
lakes
的值类型为
numeric
(您可以看到这一点,因为它们打印时没有引号)。因此这两个语句是相同的

lakes_matrix[lakes[k],lakes2[k]] 
lakes_matrix[70, 60] 
当您提供数字时,R按索引子集。因此它尝试返回第70行和第60列的值。由于
lakes_matrix
只有8行和8列,因此该值不存在,并返回
下标超出范围的错误



您可以使用
as.character
lakes
的值更改为键入
character

您可以发布正确的R代码来显示您的尝试吗?谢谢!成功了!您可以发布正确的R代码来显示您的尝试吗?谢谢!成功了!