📜  如何在 R 中修复:不正确的维数

📅  最后修改于: 2022-05-13 01:55:15.346000             🧑  作者: Mango

如何在 R 中修复:不正确的维数

在本文中,我们将讨论如何修复 R 编程语言中的“维数不正确”错误。

在 R 中可能面临的一个常见错误是:

当一个人试图通过提供比对象的实际维度更多的维度来引用一个对象时,R 编译器会产生这样的错误。

重现错误:

让我们考虑一个示例,其中我们有一个用 5 个值初始化的向量。

R
# Initialize a vector
myVector <- c(10,13,2,6,12)


R
# Initialize a vector
myVector <- c(10, 13, 2, 6, 12)
  
# Access the value stored at 4th row 
# and 1st column
myVector[4, ]


R
# Initialize a vector
myVector <- c(10, 13, 2, 6, 12)
  
# Access the value stored at 4th
# row and 1st column
myVector[, 4]


R
# Initialize a vector
myVector <- c(10, 13, 2, 6, 12)
  
# Access the value stored at 5th position
myVector[5]


R
# Initialize a vector
myVector <- c(10, 13, 2, 6, 12)
  
# Access the value stored at 5th position
myVector[2:5]


正如您在片段中看到的那样, myVector是一个包含 5 个值的一维向量。现在假设我们错误地尝试用两个维度对其进行子集化:

例子:

在这个程序中,我们正在访问存储在第 4 行和第 1 列的值。

R

# Initialize a vector
myVector <- c(10, 13, 2, 6, 12)
  
# Access the value stored at 4th row 
# and 1st column
myVector[4, ]

输出:

输出

例子:

在这个程序中,我们正在访问存储在第 1 行和第 4 列的值。在这里,R 编译器产生了这个错误,因为我们试图用 2 维进行子集化,而向量具有 1 维。

R

# Initialize a vector
myVector <- c(10, 13, 2, 6, 12)
  
# Access the value stored at 4th
# row and 1st column
myVector[, 4]

输出:

输出

如何修复此错误:

我们可以通过一维子集轻松修复此错误。

例子:

考虑一个程序,我们在其中访问向量的第五个值(视为一维数据结构)。

R

# Initialize a vector
myVector <- c(10, 13, 2, 6, 12)
  
# Access the value stored at 5th position
myVector[5]

输出:

输出

注意:向量的大量连续值也可以通过一维的子集访问:

例子:

在这个程序中,我们使用从位置等于 2 到位置等于 5(包括)的一维子集值访问元素。

R

# Initialize a vector
myVector <- c(10, 13, 2, 6, 12)
  
# Access the value stored at 5th position
myVector[2:5]

输出:

输出