2014-11-25 2 views
0

У меня есть набор статистики хоккея, импортированных в кадр данных в R. У меня возникли проблемы с поиском правильных запросов для набора данных, которые я хочу.SQL-команды для статистического моделирования

Все записи хранятся в 1 таблицы называемых фигуристов

Name  Team  Opp  G 
AAAAA  PHI  BOS  2 
BBBBB  NYR  OTT  7 
AAAAA  PHI  BOS  9 
DDDDD  BOS  PHI  3 
EEEEE  BOS  PHI  1 
FFFFF  PHI  BOS  2 
GGGGG  OTT  NYR  3 

я хотел бы найти способ, чтобы взять сумму G на команду. Мысли были для вас использовать запрос, например,

SELECT DISTINCT(Team), SUM(G) FROM skaters но это не дало мне то, что я ожидал.

Затем я нашел функцию GROUP BY, которая нашла правильные данные. Затем я снова хотел поднять ставку.

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

+1

Подсказка: Это основной 'группа by' запроса. –

+0

, если вы используете r, зачем вы хотите смешивать в sql? [здесь] (http://stackoverflow.com/questions/16657512/apply-function-condition/16657546#16657546) - это совокупность подходов к этим типам проблем. – rawr

+0

@rawr У меня нет требования использовать SQL, но поскольку я уже не знаком с R, казалось бы хорошей идеей использовать SQL-подобную среду запросов. – Neurax

ответ

1
library(data.table) 
setDT(df) # convert data frame to data table 
df[,list(sum_G = sum(G)), by=Team] 
# Team sum_G 
# 1: PHI 13 
# 2: NYR 10 
# 3: BOS  4 

# Or 

library(dplyr) 
df %>% group_by(Team) %>% summarise(sum_G = sum(G)) 
2

Надеюсь, что вы ищите.

SELECT Team, SUM(G) 'Sum' FROM skaters group by Team 
+0

Пожалуйста, отпечатайте свой код 4 пробела, чтобы отформатировать его для SO. –

0

Так вы утверждаете, что у вас есть статистика в кадре данных:

aggregate(skaters$G, list(skaters$Team), sum)