【发布时间】:2020-11-10 18:09:48
【问题描述】:
我正在尝试在 R 中编写一个 for 循环,它计算两个向量(矩阵 [Z] 的第 j 行和一个向量 [F1])之间的距离,并将距离放入一个称为结果的数据框。结果的第一列用年份填充,从 1906 年开始。因此 for 循环将针对 [Z] 的每一行运行此计算,并在每次迭代后填充每一行“结果”。这是我到目前为止的代码 - 如果我删除 for 循环并单独运行每一行(例如,如果我将所有 j 替换为 1),代码会执行我想要的操作,但是当我添加 for 循环时这没用。我没有收到错误消息,但结果数据框中没有显示任何值。如果有人能帮我弄清楚我缺少什么,那就太好了!
顺便说一句,Z 是一个 97 x 22 矩阵,F1 是一个 1 x 22 矩阵。
results <- data.frame(matrix(nrow = 97, ncol = 2))
colnames(results) <- c("year", "distance")
for(j in 1:97) {
data <- as.numeric(Z[c(j),])
data2 <- as.numeric(t(F1))
distance <- euclidian.dist(data, data2)
results[j, 1] <- j + 1905
results[j, 2] <- distance
}
View(results)
【问题讨论】: