想用r语言算出100个点,每个点与自己最近的那个点,并且输出点所对应的坐标
引用 皆我百晓生 小程序回复内容作答:
在R语言中,你可以使用以下代码生成100个随机点,并计算每个点与自身最近的点:
# 生成100个随机点的坐标
x <- runif(100, -10, 10)
y <- runif(100, -10, 10)
# 创建一个空的数据框用于存储最近点的坐标
closest_points <- data.frame(x1 = numeric(), y1 = numeric(), x2 = numeric(), y2 = numeric())
# 循环遍历每个点,计算与其最近的点
for (i in 1:length(x)) {
current_point <- c(x[i], y[i])
distances <- sqrt((x - x[i])^2 + (y - y[i])^2) # 计算当前点与其他点的距离
nearest_point_index <- which.min(distances) # 找出最近点的索引
nearest_point <- c(x[nearest_point_index], y[nearest_point_index])
# 将当前点和最近点的坐标添加到数据框中
closest_points <- rbind(closest_points, c(current_point, nearest_point))
}
# 输出最近点的坐标
print(closest_points)
这段代码会生成两列数据,每行包含当前点和其对应的最近点的坐标。输出结果可能类似于以下格式:
x1 y1 x2 y2
1 0.1246630 1.8607564 0.2137548 1.7418609
2 -1.8838847 5.7787638 -2.0767414 5.5597279
3 -8.5953075 -6.1267144 -8.4524859 -6.3604385
4 2.8683774 -6.9989728 2.8882167 -7.0020918
5 -5.5203146 -6.6224740 -5.6593476 -6.7372909
6 9.4539961 -5.0374324 9.5397260 -4.8353468
其中,x1和y1列是当前点的坐标,x2和y2列是最近点的坐标。