Агрегируйте или резюмируйте, чтобы получить отношения

Ниже приводится игрушечная задача, демонстрирующая мой вопрос.

У меня есть фрейм данных, содержащий группу сотрудников, для каждого сотрудника есть имя, зарплата, пол и штат.

aggregate(salary ~ state)  # Returns the average salary per state
aggregate(salary ~ state + gender, data, FUN = mean)  # Avg salary per state/gender

Что мне действительно нужно, так это краткое изложение доли общей заработной платы, получаемой женщинами в каждом штате.

aggregate(salary ~ state + gender, data, FUN = sum)  

возвращает общую зарплату, полученную женщинами (и мужчинами) в каждом штате, но что мне действительно нужно, так это salary_w / salary_total на уровне штата. Я могу написать цикл for и т.д., но мне интересно, есть ли способ использовать для этого агрегат.

5
задан bsdfish 2 December 2010 в 23:39
поделиться