>

스크립트에서 현재 코드를 단순화하려고합니다.

가능한 두 범주 형 변수 조합으로 그룹화하고 설명 변수의 평균값을 요약하고 싶습니다.

ggplot2에있는 mpg 데이터베이스를 사용하는 예제;

library(tidyverse)
   mpg %>% group_by(manufacturer, model) %>% summarise(mean = mean(hwy))
   mpg %>% group_by(manufacturer, year) %>% summarise(mean = mean(hwy))
   mpg %>% group_by(manufacturer, cyl) %>% summarise(mean = mean(hwy))

(이것은 범주 형 변수의 모든 조합-열이 완료 될 때까지 계속됩니다)

mpg %>% group_by(cyl, year) %>% summarise(mean = mean(hwy))

등 ...

실제 데이터베이스에는 수백 개의 범주 형 변수가 있으므로 for 루프 또는 purrr을 사용하여 프로세스를 반복하고 싶습니다.

감사합니다


  • 답변 # 1

    이것은 purrr 를 사용합니다  문자 및 요인 열을 선택한 다음 combn()  모든 조합을 선택합니다.

    library(ggplot2)
    library(purrr)
    library(dplyr)
    map_lgl(mpg, ~ is.character(.) | is.factor(.))%>%
      names(.)[.]%>%
      combn(2, function(x) {mpg%>%group_by_at(x)%>%summarize(mean = mean(hwy))}, simplify = F)
    
    

    참고, 이것은 choose(100,2) 로 지저분해질 수 있습니다.  4,950 개의 조합으로 평가됩니다.

관련 자료

  • 이전 android - 자유 낙하 감지를 통한 Google 피트니스
  • 다음 sql - Oracle에서 where 및 offset 페치 절이 작동하지 않는 단순 선택