result_table<-data.frame() + n<-nrow(new_data1) + for (i in 1:3) { + new_point<-c(new_point[i,1],new_point[i,2],new_point[i,3]) + result<-c(point_inside_ellipse(point = new_point,xyz=xyz0) ,point_inside_ellipse(point = new_point,xyz=xyz1) ,point_inside_ellipse(point = new_point,xyz=xyz2) ) + result_table <- rbind(result_table, result) + } + print(result_table) + } Error in new_point[i, 1] : 量度数目不对
时间: 2024-03-27 10:41:42 浏览: 316
bigreadr:R包基于split + data.table读取大型文本文件
这个错误可能是由于`new_point`的维度不正确导致的。在第一次迭代中,`new_point`是空的,因此`new_point[i,1]`会引发“量度数目不对”的错误。你可以在for循环之前手动初始化`new_point`来解决这个问题。以下是一个修改后的代码示例:
```
result_table <- data.frame()
n <- nrow(new_data1)
new_point <- matrix(NA, nrow = 3, ncol = 3) # 初始化 new_point
for (i in 1:3) {
new_point[i,] <- c(new_point[i,1],new_point[i,2],new_point[i,3])
result <- c(point_inside_ellipse(point = new_point[i,],xyz=xyz0) ,
point_inside_ellipse(point = new_point[i,],xyz=xyz1) ,
point_inside_ellipse(point = new_point[i,],xyz=xyz2) )
result_table <- rbind(result_table, result)
}
print(result_table)
```
在这个修改后的代码中,我们手动初始化了`new_point`矩阵,使其拥有3行和3列。在循环中,我们使用索引`i`来更新`new_point`的行,并使用`new_point[i,]`来获取当前行的值。这样,我们就避免了“量度数目不对”的错误。
阅读全文