R koondfunktsioon: summarize() ja group_by() näide

⚡ Nutikas kokkuvõte

R-i koondfunktsioon koos funktsiooniga dplyr koondab mitu rida üheks statistiliseks näitajaks iga rühma kohta. See õpetus seob group_by() funktsiooni summarize() funktsiooniga Lahmani löögiandmete põhjal, et arvutada 104 324 vaatluse keskmisi, summasid, levikuid, loendeid ja positsiooniväärtusi.

  • 🧮 Põhiverb: summarize(df, name = function(column)) tagastab ühe rea ja group_by() teisendab selle esmalt üheks reaks grupi kohta.
  • 📊 Statistilised perekonnad: Keskmine ja mediaan kirjeldavad keskpunkti, standardhälve ja IQR kirjeldavad levikut ning miinimum ja maksimum kirjeldavad vahemikku.
  • 🔢 Loendamine: n() loendab praeguse grupi ridu ja n_distinct() loendab selle sees unikaalseid väärtusi.
  • 📍 Positsioonilised abilised: first(), last() ja nth() nttraciga rühma konkreetne tähelepanek.
  • 🔄 Mitmeveeruline töö: across() rakendab ühte funktsiooni paljudele veergudele ilma iga veeru jaoks koodi kordamata.
  • 🔓 Grouping Hügieen: Kutsu ungroup() alati enne arvutust, mis peab kogu tabeli peal uuesti käivituma.

R koondfunktsioon

Selles õpetuses kasutatud andmestik

Muutuja summeerimine annab esmase ettekujutuse andmetest ja rühmade kaupa kokkuvõtete tegemine annab palju rohkem teavet väärtuste jaotuse kohta. See õpetus näitab, kuidas andmestikku rühmade kaupa dplyr teegi abil koondada.

See õpetus kasutab Lahmani löömismängu andmestikku. Pärast selle importimist ja hoidmistping Ainult allpool loetletud üheksa veergu sisaldab tööandmeraamistik 104 324 vaatlust ja 9 muutujat:

  • mängija ID: mängija ID kood. tegur
  • aasta ID: Aasta. tegur
  • meeskonna ID: meeskond. tegur
  • lgID: Liiga. Tegur: AA AL FL NL PL UA
  • AB: Nahkhiirte juures. Numbriline
  • G: Mängud: mängija mängude arv. Numbriline
  • R: Jookseb. Numbriline
  • HR: Homeruns. Numbriline
  • SH: ohverdatavad hitid. Numbriline

Enne kokkuvõtte tegemist teete andmete ettevalmistamiseks järgmised sammud.

  • 1. toiming: importige andmed
  • 2. samm: valige asjakohased muutujad
  • 3. samm: sortige andmed
library(dplyr)

# Step 1
data <- read.csv("https://raw.githubusercontent.com/guru99-edu/R-Programming/master/lahman-batting.csv") %>%

# Step 2
select(c(playerID, yearID, AB, teamID, lgID, G, R, HR, SH))  %>% 

# Step 3
arrange(playerID, teamID, yearID)

Andmestiku importimisel on hea tava kasutada funktsiooni glimpse(), et saada ülevaade andmestiku struktuurist.

# Structure of the data
glimpse(data)

Väljund:

Observations: 104,324
Variables: 9
$ playerID <fctr> aardsda01, aardsda01, aardsda01, aardsda01, aardsda01, a...
$ yearID   <int> 2015, 2008, 2007, 2006, 2012, 2013, 2009, 2010, 2004, 196...
$ AB       <int> 1, 1, 0, 2, 0, 0, 0, 0, 0, 603, 600, 606, 547, 516, 495, ...
$ teamID   <fctr> ATL, BOS, CHA, CHN, NYA, NYN, SEA, SEA, SFN, ATL, ATL, A...
$ lgID     <fctr> NL, AL, AL, NL, AL, NL, AL, AL, NL, NL, NL, NL, NL, NL, ...
$ G        <int> 33, 47, 25, 45, 1, 43, 73, 53, 11, 158, 155, 160, 147, 15...
$ R        <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 113, 84, 100, 103, 95, 75...
$ HR       <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 39, 29, 44, 38, 47, 34, 40...
$ SH       <int> 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, ...

kokkuvõte()

Funktsiooni summarise() süntaks on põhiline ja kooskõlas teiste dplyr teegis sisalduvate tegusõnadega.

summarise(df, variable_name=condition) 
arguments: 
- `df`: Dataset used to construct the summary statistics 
- `variable_name=condition`: Formula to create the new variable

Vaadake allolevat koodi:

summarise(data, mean_run =mean(R))

Code Selgitus

  • summarise(data, mean_run = mean(R)): loob muutuja nimega mean_run, mis on andmestiku andmetest käivitatud veeru keskmine.

Väljund:

##   mean_run
## 1 19.20114

Saate lisada nii palju muutujaid, kui soovite. Tagastate keskmised mängitud mängud ja keskmised ohverdatavad tabamused.

summarise(data, mean_games = mean(G),
    mean_SH = mean(SH, na.rm = TRUE))

Code Selgitus

  • keskmine_SH = keskmine (SH, na.rm = TRUE): võtke kokku teine ​​muutuja. Määrasite väärtuse na.rm = TRUE, kuna veerg SH sisaldab puuduvaid vaatlusi.

Väljund:

##   mean_games  mean_SH
## 1   51.98361 2.340085

group_by() vs ilma group_by() funktsioonita

Nagu ülaltoodud näited näitavad, ahendab summarize() kogu andmeraami üheks reaks. Selle tegelik võimsus ilmneb pärast group_by() lisamist: the dplyr Seejärel rakendab teek sama arvutuse igale rühmale eraldi ja tagastab ühe rea rühma kohta.

Pange tähele, et group_by töötab suurepäraselt kõigi teiste tegusõnadega (st mute(), filter(), arrange(), …).

Torujuhtme operaatorit on mugav kasutada, kui teil on rohkem kui üks samm. Saate arvutada keskmise homeruni pesapalliliiga järgi.

data %>%
	group_by(lgID) %>%
	summarise(mean_run = mean(HR))

Code Selgitus

  • andmed: kokkuvõtliku statistika koostamiseks kasutatav andmestik
  • group_by(lgID): Jagab andmed lgID väärtuste järgi enne kokkuvõtet
  • summarise(mean_run = keskmine(HR)): Arvutage keskmine homerun

Väljund:

## 
# A tibble: 7 x 2
##     lgID  mean_run
##   <fctr>     <dbl>
## 1     AA 0.9166667
## 2     AL 3.1270988
## 3     FL 1.3131313
## 4     NL 2.8595953
## 5     PL 2.5789474
## 6     UA 0.6216216
## 7   <NA> 0.2867133	

See toru töötab ka funktsiooniga ggplot(), seega kogu ahel toorandmetest kuni lõpliku diagrammini jääb ühte lausesse. Allolev kood ühendab funktsioonid group_by(), summarize() ja ggplot(), et kuvada tulpdiagrammil keskmist kodujooksude arvu liigas.

Teete järgmise sammu:

  • 1. samm: valige andmeraam
  • 2. samm: rühmitage andmed
  • 3. samm: tehke andmetest kokkuvõte
  • 4. samm: koostage kokkuvõtlik statistika
library(ggplot2)
# Step 1
data %>% 
#Step 2
group_by(lgID) %>% 
#Step 3
summarise(mean_home_run = mean(HR)) %>% 
#Step 4
ggplot(aes(x = lgID, y = mean_home_run, fill = lgID)) +
    geom_bar(stat = "identity") +
    theme_classic() +
    labs(
        x = "baseball league",
        y = "Average home run",
        title = paste(
            "Example group_by() with summarise()"
        )
    )

Väljund:

Group_by Näide koos Kokkuvõttega

Funktsioonid, mida saate summarize() sees kasutada

Tegusõna summarise() ühildub peaaegu kõigi R-i funktsioonidega. Siin on lühike nimekiri kasulikest funktsioonidest, mida saate koos funktsiooniga summarise() kasutada:

Eesmärk funktsioon Kirjeldus
Põhi- tähendab () Vektori x keskmine
mediaan() Vektori x mediaan
summa() Vektori x summa
variatsioon sd() vektori x standardhälve
IQR() Vektori x interkvartiil
Valik min() Vektori x miinimum
max() Vektori x maksimum
kvantiil() Vektori x kvantiil
ASUKOHT esimene () Kasuta koos group_by()-ga Rühma esimene vaatlus
viimane () Kasutage koos group_by(). Rühma viimane tähelepanek
nth() Kasutage koos group_by(). rühma n-s vaatlus
Loendama n() Kasutage koos group_by(). Loendage ridade arv
n_distinct() Kasutage koos group_by(). Loendage erinevate vaatluste arv

Allolevates osades on toodud näide iga ülaltoodud tabelis oleva funktsiooni kohta. Kui toru ja teised verbid on teile uued, alustage järgmisest: vali, filtreeri ja korralda õpetust.

Põhifunktsioon

Eelmises näites ei salvestanud te kokkuvõtvat statistikat andmeraami.

Andmeraami saab kokkuvõttest genereerida kahes etapis:

  • 1. samm: salvestage andmeraam edasiseks kasutamiseks
  • 2. samm: kasutage joondiagrammi loomiseks andmestikku

Step 1) Arvutate aasta keskmise mängitud mängude arvu.

## Mean
ex1 <- data %>%
	group_by(yearID) %>%
	summarise(mean_game_year = mean(G))
head(ex1)

Code Selgitus

  • Löögiandmestiku kokkuvõtlik statistika salvestatakse andmeraami ex1.

Väljund:

## # A tibble: 6 x 2
##   yearID mean_game_year
##    <int>          <dbl>
## 1   1871       23.42308
## 2   1872       18.37931
## 3   1873       25.61538
## 4   1874       39.05263
## 5   1875       28.39535
## 6   1876       35.90625	

Step 2) Näitate kokkuvõtvat statistikat joondiagrammiga ja näete trendi.

# Plot the graph
ggplot(ex1, aes(x = yearID, y = mean_game_year)) +
    geom_line() +
    theme_classic() +
    labs(
        x = "Year",
        y = "Average games played",
        title = paste(
            "Average games played from 1871 to 2016"
        )
    )

Väljund:

Põhifunktsiooni näide

Alamhulk

Funktsioon summarise() ühildub alamhulgaga.

## Subsetting + Median
data %>%
group_by(lgID) %>%
summarise(median_at_bat_league = median(AB), 
	#Compute the median without the zero 
	median_at_bat_league_no_zero = median(AB[AB > 0]))

Code Selgitus

  • mediaan_at_bat_league_no_zero = mediaan(AB[AB > 0]): muutuja AB sisaldab palju 0. Saate võrrelda juures nahkhiir muutuja 0-ga ja ilma.

Väljund:

## # A tibble: 7 x 3
##     lgID median_at_bat_league median_at_bat_league_no_zero
##   <fctr>                <dbl>                        <dbl>
## 1     AA                  130                          131
## 2     AL                   38                           85
## 3     FL                   88                           97
## 4     NL                   56                           67
## 5     PL                  238                          238
## 6     UA                   35                           35
## 7   <NA>                  101                          101	

Summa

Teine kasulik funktsioon muutuja koondamiseks on summa().

Saate kontrollida, millistel liigadel on rohkem homeruni.

## Sum
data %>%
	group_by(lgID) %>%
	summarise(sum_homerun_league = sum(HR))

Väljund:

## # A tibble: 7 x 2
##     lgID sum_homerun_league
##   <fctr>              <int>
## 1     AA                341
## 2     AL              29426
## 3     FL                130
## 4     NL              29817
## 5     PL                 98
## 6     UA                 46
## 7   <NA>                 41	

Standardhälve

Andmete jaotus arvutatakse standardhälbe või sd() abil R-s.

# Spread
data %>%
	group_by(teamID) %>%
	summarise(sd_at_bat_league = sd(HR))

Väljund:

## # A tibble: 148 x 2
##    teamID sd_at_bat_league
##    <fctr>            <dbl>
##  1    ALT               NA
##  2    ANA        8.7816395
##  3    ARI        6.0765503
##  4    ATL        8.5363863
##  5    BAL        7.7350173
##  6    BFN        1.3645163
##  7    BFP        0.4472136
##  8    BL1        0.6992059
##  9    BL2        1.7106757
## 10    BL3        1.0000000
## # ... with 138 more rows		

Kodulöökide arvu jaotus on meeskondade vahel väga erinev ja ALT tagastab väärtuse NA, kuna sellel meeskonnal on ainult üks rida, seega ei saa standardhälvet arvutada.

Miinimum ja maksimum

Funktsioonidega min() ja max() pääsete ligi vektori miinimumile ja maksimumile.

Allolev kood tagastab väikseima ja suurima mängude arvu mängija mängitud hooajal.

# Min and max
data %>%
	group_by(playerID) %>%
	summarise(min_G = min(G),
    max_G = max(G))

Väljund:

## # A tibble: 10,395 x 3
##     playerID min_G max_G
##       <fctr>       <int>
##  1 aardsda01    53    73
##  2 aaronha01   120   156
##  3  aasedo01    24    66
##  4  abadfe01    18    18
##  5 abadijo01    11    11
##  6 abbated01     3   153
##  7 abbeybe01    11    11
##  8 abbeych01    80   132
##  9 abbotgl01     5    23
## 10 abbotji01    13    29
## # ... with 10,385 more rows

Loendama

Vaatluste loendamine rühmade kaupa on alati väärt tegemist. R-is tagastab n() ridade arvu praeguses rühmas.

Näiteks arvutab allolev kood iga mängija mängitud aastate arvu.

# count observations
data %>%
	group_by(playerID) %>%
	summarise(number_year = n()) %>%
	arrange(desc(number_year))

Väljund:

## # A tibble: 10,395 x 2
##     playerID number_year
##       <fctr>       <int>
##  1 pennohe01          11
##  2 joosted01          10
##  3 mcguide01          10
##  4  rosepe01          10
##  5 davisha01           9
##  6 johnssi01           9
##  7  kaatji01           9
##  8 keelewi01           9
##  9 marshmi01           9
## 10 quirkja01           9
## # ... with 10,385 more rows

Esimene ja viimane

Saate valida rühma esimese, viimase või n-nda positsiooni.

Näiteks leiate iga mängija esimese ja viimase aasta.

# first and last
data %>%
	group_by(playerID) %>%
	summarise(first_appearance = first(yearID),
		last_appearance = last(yearID))

Väljund:

## # A tibble: 10,395 x 3
##     playerID first_appearance last_appearance
##       <fctr>            <int>           <int>
##  1 aardsda01             2009            2010
##  2 aaronha01             1973            1975
##  3  aasedo01             1986            1990
##  4  abadfe01             2016            2016
##  5 abadijo01             1875            1875
##  6 abbated01             1905            1897
##  7 abbeybe01             1894            1894
##  8 abbeych01             1895            1897
##  9 abbotgl01             1973            1979
## 10 abbotji01             1992            1996
## # ... with 10,385 more rows

n-s tähelepanek

Funktsioon nth() täiendab funktsioone first() ja last(). See tagastab iga rühma sees edastatud indeksi juures oleva vaatluse.

Näiteks saate filtreerida ainult teise aasta, mil meeskond mängis.

# nth
data %>%
	group_by(teamID) %>%
	summarise(second_game = nth(yearID, 2)) %>%
	arrange(second_game)

Väljund:

## # A tibble: 148 x 2
##    teamID second_game
##    <fctr>       <int>
##  1    BS1        1871
##  2    CH1        1871
##  3    FW1        1871
##  4    NY2        1871
##  5    RC1        1871
##  6    BR1        1872
##  7    BR2        1872
##  8    CL1        1872
##  9    MID        1872
## 10    TRO        1872
## # ... with 138 more rows

Eristuv arv vaatlusi

n() tagastab ridade arvu praeguses rühmas. Seotud n_distinct() loendab hoopis unikaalseid väärtusi.

Järgmises näites liidate kokku mängijate koguarv, kelle meeskond kõigi perioodide jooksul värvas.

# distinct values
data %>%
	group_by(teamID) %>%
	summarise(number_player = n_distinct(playerID)) %>%
	arrange(desc(number_player))

Code Selgitus

  • group_by(teamID): Grupeeri meeskonna järgi
  • summarise(number_player = n_eristav(mängijaID)): Loendage meeskonnas erinevad mängijad
  • arrange(desc(number_player)): sorteeri andmed mängijate arvu järgi

Väljund:

## # A tibble: 148 x 2
##    teamID number_player
##    <fctr>         <int>
##  1    CHN           751
##  2    SLN           729
##  3    PHI           699
##  4    PIT           683
##  5    CIN           679
##  6    BOS           647
##  7    CLE           646
##  8    CHA           636
##  9    DET           623
## 10    NYA           612
## # ... with 138 more rows

Mitu rühma

Kokkuvõtvat statistikat saab teha mitme rühma kohta.

# Multiple groups
data %>%
	group_by(yearID, teamID) %>%
	summarise(mean_games = mean(G)) %>%
	arrange(desc(teamID, yearID))

Code Selgitus

  • group_by(yearID, teamID): rühmitamine aasta järgi ja meeskond
  • summarize(mean_games = mean(G)): Keskmine mängitud mängude arv
  • arrange(desc(teamID, yearID)): Sorteeri andmed meeskonna ja aasta järgi

Väljund:

## # A tibble: 2,829 x 3
## # Groups:   yearID [146]
##    yearID teamID mean_games
##     <int> <fctr>      <dbl>
##  1   1884    WSU   20.41667
##  2   1891    WS9   46.33333
##  3   1886    WS8   22.00000
##  4   1887    WS8   51.00000
##  5   1888    WS8   27.00000
##  6   1889    WS8   52.42857
##  7   1884    WS7    8.00000
##  8   1875    WS6   14.80000
##  9   1873    WS5   16.62500
## 10   1872    WS4    4.20000
## # ... with 2,819 more rows

filtrid

Enne toimingu tegemist saate andmestiku filtreerida. Andmekogum algab 1871. aastast ja analüüs ei vaja 1980. aastale eelnevaid aastaid.

# Filter
data %>%
	filter(yearID > 1980) %>%
	group_by(yearID) %>%
	summarise(mean_game_year = mean(G))

Code Selgitus

  • filter(yearID > 1980): filtreerige andmed, et kuvada ainult asjakohased aastad (st pärast 1980. aastat)
  • group_by(yearID): rühmita aasta järgi
  • summarise(mean_game_year = keskmine(G)): Tehke andmete kokkuvõte

Väljund:

## # A tibble: 36 x 2
##    yearID mean_game_year
##     <int>          <dbl>
##  1   1981       40.64583
##  2   1982       56.97790
##  3   1983       60.25128
##  4   1984       62.97436
##  5   1985       57.82828
##  6   1986       58.55340
##  7   1987       48.74752
##  8   1988       52.57282
##  9   1989       58.16425
## 10   1990       52.91556
## # ... with 26 more rows

Lõhu

Lõpuks peate eemaldama mullaping enne arvutuse käivitamise taseme muutmist. Ilma ungroup() funktsioonita töötaks teine ​​summarize() ikkagi iga mängija kohta eraldi.

# Ungroup the data
data %>%
	filter(HR > 0) %>%
	group_by(playerID) %>%
	summarise(average_HR_game = sum(HR) / sum(G)) %>%
	ungroup() %>%
	summarise(total_average_homerun = mean(average_HR_game))

Code Selgitus

  • filter(HR >0) : välista null homerun
  • group_by(playerID): rühm mängija järgi
  • summarise(average_HR_game = summa(HR)/sum(G)): Arvutage mängija keskmine kodujooksu
  • ungroup(): eemalda rühmping
  • summarise(total_average_homerun = mean(average_HR_game)): Tehke andmete kokkuvõte

Väljund:

## # A tibble: 1 x 1
##   total_average_homerun
##                   <dbl>
## 1            0.06882226	

Kuidas across() abil mitut veergu kokku võtta

Iga ülaltoodud näide nimetab korraga ühe veeru. Kui sama statistikat on vaja paljude veergude jaoks, rakendab across() seda kõigile ühe kutse käigus.

# One function, several columns
data %>%
    group_by(lgID) %>%
    summarise(across(c(R, HR, G), mean, .names = "mean_{.col}"))

# Every numeric column at once
data %>%
    group_by(lgID) %>%
    summarise(across(where(is.numeric), mean, na.rm = TRUE))

# Several functions applied to several columns
data %>%
    group_by(teamID) %>%
    summarise(across(c(R, HR), list(avg = mean, total = sum)))

Käitumist kontrollivad kolm argumenti:

  • .cols: veerud, millega tegutseda, kirjutatud samade abimeestega nagu select(), sealhulgas where(is.numeric).
  • .fns-failid: üks funktsioon või nimetatud funktsioonide loend, mida igale veerule rakendada.
  • .nimed: väljundi nimetamise muster, kus {.col} on veerg ja {.fn} funktsiooni nimi.

across() asendas dplyr 1.0.0 versioonis vanemad abimehed summarize_all(), summarize_at() ja summarize_if(). Need töötavad endiselt, kuid on asendatud, seega peaks uus kood kasutama across() funktsiooni.

Levinumad summarize() vead ja kuidas neid parandada

Enamiku ebaõnnestunud agregatsioonide põhjusteks on neli probleemi.

  • Tulemuseks on NA. mean() ja sum() tagastavad väärtuse NA, kui mõni väärtus puudub. Lisa na.rm = TRUE, nagu ülaltoodud mean_SH näites.
  • Sõnum „summarise() väljund on rühmitatud”. Grouping Kahe muutuja järgi grupeerimine jätab tulemuse esimese järgi grupeerituks. Grupi eemaldamiseks sisesta .groups = “drop”.pingvõi kutsu pärast välja funktsioon ungroup().
  • Hilisem arvutus annab vale taseme. Andmeraam jääb grupeerituks kuni selle grupeerimise tühistamiseni, seega iga grupi kohta käivitatakse ikkagi teine ​​summarize() funktsioon. Täpselt seda demonstreeribki ungroup() näide.
  • Väljund sisaldab oodatust rohkem ridu. summarize() tagastab ühe rea rühma kohta, seega tahtmatu rühmping muutuja korrutab väljundi. Kontrollige iga tibble'i kohal olevat rida „Groups:”.
# Drop the grouping as part of the call
data %>%
    group_by(yearID, teamID) %>%
    summarise(mean_games = mean(G), .groups = "drop")

summarize() R-is: funktsioonide juhend

Kokkuvõtte tagastamiseks rühmade kaupa jagage andmed kõigepealt:

# group by X1, X2, X3
group_by(df, X1, X2, X3)

ja eemaldage muldping kui arvutuse tase muutub:

ungroup(df)

Allolev tabel loetleb kõik selles õpetuses summarize() funktsiooniga kasutatud funktsioonid:

Meetod funktsioon Code
keskmine keskmine
summarise(df, mean_x1 = mean(x1))
mediaan mediaan
summarise(df, median_x1 = median(x1))
summa summa
summarise(df, sum_x1 = sum(x1))
standardhälve sd
summarise(df, sd_x1 = sd(x1))
interkvartiil I.Q.R.
summarise(df, interquartile_x1 = IQR(x1))
miinimum minutit
summarise(df, minimum_x1 = min(x1))
maksimaalne max
summarise(df, maximum_x1 = max(x1))
kvantiil kvantiil
summarise(df, quantile_x1 = quantile(x1, probs = 0.75))
esimene tähelepanek esimene
summarise(df, first_x1 = first(x1))
viimane tähelepanek viimane
summarise(df, last_x1 = last(x1))
n-s tähelepanek n
summarise(df, nth_x1 = nth(x1, 2))
esinemise arv n
summarise(df, n_x1 = n())
eristavate esinemiste arv n_eristav
summarise(df, n_distinct_x1 = n_distinct(x1))

KKK

summarize() koondab iga rühma üheks statistikareaks. mutate() säilitab iga rea ​​ja lisab uue veeru. Kasuta mutate() funktsiooni, kui rühma statistiline näitaja peab asuma algsete vaatluste kõrval.

Grouping kahe või enama muutuja korral rühmitatakse tulemus kõigi muutujate järgi peale viimase. dplyr hoiatab sind, sest hilisemad verbid töötaksid vaikselt rühmade kaupa. Selle vältimiseks anna edasi .groups = “drop”.

n() loendab iga rea ​​praeguses rühmas, kaasa arvatud kordused. n_distinct() loendab veerus unikaalseid väärtusi. Mängijate loendamiseks meeskonnas on vaja n_distinct() funktsiooni, sest üks mängija esineb mitmel hooajal.

Grupi tasemel koondnäitajad, näiteks klientide keskmised, loendid ja värskuse väärtused, on tabelina esitatud tehisintellekti mudelite ühed tugevaimad ennustajad. Nende reprodutseeritava loomise standardviis on group_by() koos summarize()-ga.

Jah. Tehisintellekti assistendid saavad aggregate() ja tapply() ümber kirjutada group_by() ja summarize() torujuhtmetena. Võrrelge ridade arvu mõlemas versioonis, sest baas-R ja dplyr käsitlevad puuduvaid rühmi erinevalt.

Võta see postitus kokku järgmiselt: