Как сгруппировать фрейм данных с условием и добавить некоторые переменные - PullRequest
1 голос
/ 24 апреля 2020

Я пытаюсь сделать 'group_by' на кадре данных с условием внутри, но что-то отсутствует ... Однако решение кажется простым ..... Любая помощь будет приветствоваться!

var1 <- "no"

result <- starwars %>% 
  if (var1=="yes") group_by(.,gender)
  else if (var1=="no") group_by(.,gender,skin_color)}

1 Ответ

2 голосов
/ 24 апреля 2020

Это решение может быть не самым красивым, но оно делает то, что вам нужно

if (var1 == "yes") 
  result <- starwars %>% group_by(gender) 
if (var1 == "no")
  result <- starwars %>% group_by(gender, skin_color) 

, и после каждого group_by вы указываете функции суммирования, которые вы хотите применить, или любую другую нужную вам операцию.


РЕДАКТИРОВАТЬ

Другое возможное решение после прочтения этого сообщения использует условные конвейеры , то есть

starwars %>% 
  {if (var1 == "yes") group_by(., gender) else .} %>% 
  {if (var1 == "no") group_by(., gender, skin_color) else .}

Поскольку у меня нет ваших данных, я не проверял их, но они должны работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...