Как реализовать группу по запросу, имеющему min и max в R, используя dplyr или другой пакет? - PullRequest
0 голосов
/ 26 августа 2018

Как реализовать этот запрос в R с помощью пакета dplyr?

df2 = sqldf('select A, B, min(C), count(distinct(d))
               from df1
              where A = 1
                and B = "xyz"
              group by A, B')

В настоящее время я использую sqldf для повышения производительности, я хочуиспользуйте dplyr или любую другую подходящую упаковку.

Ответы [ 2 ]

0 голосов
/ 26 августа 2018

это работает?

df2=filter(df1,A==1 & B == "xyz")%>% group_by(A,B)%>%
  summarise(min_C=min(C), min_d=max(d), med_E=median(E))
0 голосов
/ 26 августа 2018

для увеличения производительности этого запроса

df2 = sqldf('select A, B, min(C), max(d), median(E)
           from df1
          where A = 1
            and B = "xyz"
          group by A, B')

убедитесь, что у вас есть индекс в таблице df1, столбец A, B

create index my_idx ON df1 (A, B)

или

create index my_idx ON df1 (A, B, C, D,E)

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

...