Мутация в рамке вложенных данных

Нет. Имя компьютера клиента недоступно на сервере. Это характер HTTP-запроса-ответа. У вас может быть только IP-адрес.

Обходные пути могут заключаться в том, чтобы получить машину на клиенте из Flash / Silverlight (я сомневаюсь, что JavaScript) и добавить в файл cookie, который доступен на сервере с каждым запросом. Но с этим подходом существует целый ряд проблем.

0
задан Kuba_ 13 July 2018 в 13:44
поделиться

1 ответ

Проблема в том, что 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, что матрица центров упорядочена по ряду по номеру кластера, правильный ответ в главном блоке.

1
ответ дан luke.sonnet 17 August 2018 в 12:59
поделиться
  • 1
    Благодарю. Хорошо работает с map и равным числом кластеров в каждой группе, но не обобщает для разных количеств кластеров и map2 использования. Я редактировал свой пост. – Kuba_ 13 July 2018 в 13:45
  • 2
    Отредактировано для решения этой проблемы. Исходное решение только работало bc n кластеров = n групп. – luke.sonnet 13 July 2018 в 13:55
Другие вопросы по тегам:

Похожие вопросы: