使用R中的方程式将值插入矩阵
我需要使用方程将值插入到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[
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
的值更改为typecharacter
当使用括号表示法进行子集时,R解释命令的方式将根据您传递的值类型character
或typenumeric
而有所不同。在第一个示例中,传递的是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代码来显示您的尝试吗?谢谢!成功了!