Нет. Имя компьютера клиента недоступно на сервере. Это характер HTTP-запроса-ответа. У вас может быть только IP-адрес.
Обходные пути могут заключаться в том, чтобы получить машину на клиенте из Flash / Silverlight (я сомневаюсь, что JavaScript) и добавить в файл cookie, который доступен на сервере с каждым запросом. Но с этим подходом существует целый ряд проблем.
Проблема в том, что 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
, что матрица центров упорядочена по ряду по номеру кластера, правильный ответ в главном блоке.
map
и равным числом кластеров в каждой группе, но не обобщает для разных количеств кластеров иmap2
использования. Я редактировал свой пост. – Kuba_ 13 July 2018 в 13:45