Я пытаюсь использовать dplyr для применения функции к кадру данных, который сгруппирован с использованием функции group_by. Я применяю функцию к каждой строке сгруппированных данных, используя do(). Я хотел бы получить значение переменной group_by, чтобы я мог использовать его в вызове функции.Как вы можете получить значение group_by для использования при передаче функции?
Таким образом, эффективно, я have-
tmp <-
my_data %>%
group_by(my_grouping_variable) %>%
do(my_function_call(data.frame(x = .$X, y = .$Y),
GROUP_BY_VARIABLE)
Я уверен, что я мог бы назвать уникальным и получить его ...
do(my_function_call(data.frame(x = .$X, y = .$Y),
unique(.$my_grouping_variable))
Но, кажется неуклюжим и будет нерационально назвать уникальным для каждого значения группировки.
Есть ли способ получить значение переменной group_by в dplyr?
Я собираюсь преждевременно извиняться, если это сумасшедшая легкая вещь, на которую можно ответить. Я обещаю, что исчерпывающе искал ответ.
Более эффективный, чем 'unique' (хотя и такой же неуклюжий), будет' first (. $ My_grouping_variable) '. Я бы посоветовал вам подумать об общих случаях - вы, кажется, считаете, что существует только одна переменная группировки, но, конечно же, вы могли бы группировать несколько столбцов разных классов. Предположительно, если бы существовала функция 'this_group()', ей нужно было бы вернуть именованный список или кадр данных одной строки с каждой переменной группировки и ее текущим значением. – Gregor