Мои данные выглядят так,
X Y Goal 32 12 1 13 42 0 55 33 0 ...
Я хочу посчитать, сколько всего голов было забито из каждой пары координат X-Y. Любые предложения, как я могу это сделать?
Вот решение dplyr.
dplyr
# Create data frame df <- read.table(text = "X Y Goal 32 12 1 13 42 0 55 33 0", header = TRUE) # Load library library(dplyr) # Group by both X & Y, then sum all goals df %>% group_by(X, Y) %>% summarise(Total = sum(Goal, na.rm = TRUE)) #> # A tibble: 3 x 3 #> # Groups: X [3] #> X Y Total #> <int> <int> <int> #> 1 13 42 0 #> 2 32 12 1 #> 3 55 33 0
Создано в 2019-03-15 пакетом Представления (v0.2.1)
Использование data.table :( Лучше обеспечить ожидаемый результат)
data.table
setDT(df) df[,lapply(.SD,sum),.(X,Y)][] X Y Goal 1: 32 12 1 2: 13 42 0 3: 55 33 0