Вставьте внешний скрипт после того, как все элементы были смонтированы

Проблема в том, что pluck() возвращает матрицу.

library(tidyverse)
my_data <- data.frame(group = c(sample(c('A', 'B', 'C'), 20, replace = TRUE)), x = runif(100, 0, 10), y = runif(100, 0, 10))
my_data %>% 
    group_by(group) %>% 
    nest() %>% 
    mutate(number = sample(3:7, 3)) %>% 
    mutate(km_cluster = map2(data, number, ~kmeans(.x, .y) %>% pluck('cluster')), 
           km_centers = map2(data, number, ~kmeans(.x, .y) %>% pluck('centers') %>% as_tibble() %>% mutate(cluster = seq_len(nrow(.)))))

Обратите внимание, что вы также можете делать mutate(cluster = row_number(x)))), и это дает разные номера (обратите внимание, что только с помощью row_number() использует строки из родительского df). Я думаю, что с учетом kmeans, что матрица центров упорядочена по ряду по номеру кластера, правильный ответ в главном блоке.

0
задан kinx 19 January 2019 в 10:39
поделиться