关于#r语言#的问题,请各位专家解答!

想用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列是最近点的坐标。