web-dev-qa-db-ja.com

R-dplyrは他の列を要約して保持します

データをグループ化してから要約していますが、別の列も保持したいと考えています。その列のコンテンツは常にgroup_by列と同じであるため、評価する必要はありません。 group_byステートメントに追加することはできますが、「正しくない」ようです。保持したいState.Full.NameStateでグループ化した後。ありがとう

TDAAtest <- data.frame(State=sample(state.abb,1000,replace=TRUE))
TDAAtest$State.Full.Name <- state.name[match(TDAAtest$State,state.abb)]


TDAA.states <- TDAAtest %>%
  filter(!is.na(State)) %>%
  group_by(State) %>%
  summarize(n=n()) %>%
  ungroup() %>%
  arrange(State)
17
atclaus

おそらく私たちは必要です

TDAAtest %>% 
     filter(!is.na(State)) %>%
     group_by(State) %>% 
     summarise(State.Full.Name = first(State.Full.Name), n = n())

または、mutateを使用して列を作成し、distinctを実行します

TDAAtest %>% f
     filter(!is.na(State)) %>%
     group_by(State) %>% 
     mutate(n= n()) %>% 
     distinct(State, .keep_all=TRUE)
24
akrun