Это мой код для объяснения моей проблемы:
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, где каждая строка добавляет до 100.
Фрейм данных:данные представляют данные выборочной выборки, где каждая строка суммирует до 100.
Я хотел бы найти ближайшую «строку сетки» для каждой выборки выборочных данных (например, используя евклидово расстояние) и объединить ее с фреймом данных: данныесодержащий данные гранулированного образца.Как я могу достичь этого, пожалуйста?