#r #group-by #mean
#r #группировать по #среднее
Вопрос:
Я знаю, что уже есть несколько тем по этому поводу, но я еще не нашел ни одной об этой конкретной проблеме. Зависимой переменной в моем наборе данных является Y, и у меня есть 144 независимые переменные. Y и X могут принимать только значения 1 или 0. Данные выглядят следующим образом
Y A469 T593 K022K A835 Z935 U83F W5326 ...
Person1 1 1 1 1 0 0 0 0
Person2 1 0 1 0 1 1 0 0
Person3 0 0 0 1 0 0 1 1
...
summary(dataset)
просто предоставляет описательную статистику по всем наблюдениям. Чего я хочу, так это (в псевдокоде):
summary(all variables if Y == 1 and Y == 0)
Было бы здорово, если бы я мог видеть, как часто определенный X встречается в определенном значении Y. Например, среднее значение (X4) = 0.04 и количество = 6, если Y = 1.
Комментарии:
1. Пожалуйста, предоставьте более полный набор данных для работы. Вы можете и должны использовать
dput
для предоставления выборочных данных.2. @NelsonGon Смелое утверждение после того, как на него уже почти был дан ответ. Я полностью за воспроизводимые примеры, и, конечно,
dput()
это приятнее, но это и так достаточно ясно.3. @Gregor мне показалось, что недостаток данных затрудняет поиск «идеального» решения. Мои извинения!
Ответ №1:
РЕДАКТИРОВАТЬ 2 после комментариев Акруна и Грегора вот решение
data_summary <- dataset %>% group_by(y) %>%
mutate(n = n()) %>%
summarise_all(mean)
Если вы хотите видеть больше столбцов, чем умещается на вашем экране, вы можете попробовать, например,
print(data_summary, width = 20)
View(data_summary)
select(data_summary, <<particular columns you want to see>>)
- …
Комментарии:
1. Я получаю это сообщение об ошибке: Ошибка в UseMethod («groups»): нет применимого метода для ‘groups’, применяемого к объекту класса «c (‘double’, ‘numeric’)»
2. не могли бы вы, пожалуйста, предоставить образец ваших данных?
3. Я думаю, что
count
проблема. Вам может понадобитьсяn()
4. попробуйте
n
вместоn()
5. Вы правы, это показывает только первые 10 переменных. Они все есть, они просто не напечатаны. Сохраните результат как
data_summary
или что-то еще и просмотрите его с помощью чего-то другого, кроме метода печати по умолчанию для tibbles.print.data.frame(data_summary)
,View(data_summary)
,write.csv(data_summary)
print(data_summary, width = Inf)
и т.д.