R, как подсчитать по двум столбцам? - PullRequest
0 голосов
/ 15 марта 2019

Мои данные выглядят так,

    X  Y Goal
    32 12 1
    13 42 0
    55 33 0
    ...

Я хочу посчитать, сколько всего голов было забито из каждой пары координат X-Y. Любые предложения, как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 15 марта 2019

Вот решение 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)

0 голосов
/ 15 марта 2019

Использование 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
...