这是我的代码来解释我的问题:
step_size <- 5
grid <- expand.grid(
x1 = seq(0, 100, step_size)
, x2 = seq(0, 100, step_size)
, x3 = seq(0, 100, step_size)
)
nrow(grid)
grid <- grid %>%
mutate(
sum = x1 + x2 + x3
) %>%
filter(
sum == 100
) %>%
select(
x1
, x2
, x3
)
nrow(grid)
n <- 10
data <- data.frame(
x1 = runif(n, min = 0, max = 100)
, x2 = runif(n, min = 0, max = 100)
, x3 = runif(n, min = 0, max = 100)
)
data <- data %>%
mutate(
sum = x1 + x2 + x3
, x1 = (x1 / sum) * 100
, x2 = (x2 / sum) * 100
, x3 = (x3 / sum) * 100
)
data <- data %>%
mutate(
sum = x1 + x2 + x3
)
data
数据框:网格表示步长为5的bin,其中每一行总计为100。
数据框:数据表示细化的示例数据,每行总计100。
我想为每个粒度数据样本找到最接近的“网格行”(例如,使用欧几里得距离),并将其合并到数据帧:包含粒度样本数据的数据。请问我该如何实现?