Hoe een aantal.als-functie uit te voeren in r


Vaak wilt u misschien alleen het aantal rijen in een R-dataframe tellen dat aan bepaalde criteria voldoet. Gelukkig is dit eenvoudig te doen met behulp van de volgende basissyntaxis:

 sum(df$column == value, na.rm= TRUE )

De volgende voorbeelden laten zien hoe u deze syntaxis in de praktijk kunt gebruiken op het volgende dataframe:

 #create data frame
data <- data.frame(team=c('Mavs', 'Mavs', 'Spurs', 'Spurs', 'Lakers'),
                   points=c(14, NA, 8, 17, 22),
                   rebounds=c(8, 5, 5, 9, 12))

#view data frame
data

    team points rebounds
1 Mavs 14 8
2 Mavs NA 5
3 Spurs 8 5
4 Spurs 17 9
5 Lakers 22 12

Voorbeeld 1: Tel rijen die gelijk zijn aan een bepaalde waarde

De volgende code laat zien hoe je het aantal regels telt waarbij de teamnaam gelijk is aan „Mavs“:

 sum(data$team == ' Mavs ')

[1] 2

De volgende code laat zien hoe je het aantal regels telt waarbij de teamnaam gelijk is aan „Mavs“ of „Lakers“:

 sum(data$team == ' Mavs ' | data$team == ' Lakers ')

[1] 3

De volgende code laat zien hoe je het aantal regels telt waarbij de teamnaam niet gelijk is aan „Lakers“:

 sum(data$team != ' Lakers ')

[1] 4

Voorbeeld 2: rijen tellen groter dan of gelijk aan een bepaalde waarde

De volgende code laat zien hoe u het aantal lijnen telt waarbij de punten groter zijn dan 10:

 sum(data$points > 10, na.rm= TRUE )

[1] 3

De volgende code laat zien hoe u het aantal rijen telt waarin bounces kleiner zijn dan of gelijk zijn aan 9:

 sum(data$rebounds <= 9, na.rm= TRUE )

[1] 4

Voorbeeld 3: Tel lijnen tussen twee waarden

De volgende code laat zien hoe u het aantal lijnen telt waarbij de punten tussen 10 en 20 liggen:

 sum(data$points > 10 & data$points < 20, na.rm= TRUE )

[1] 2

De volgende code laat zien hoe u het aantal rijen telt waarin de bounces tussen 8 en 10 liggen:

 sum(data$rebounds > 8 & data$rebounds < 10, na.rm= TRUE )

[1] 1

Aanvullende bronnen

Hoe observaties per groep te tellen in R
Gegevens groeperen en samenvatten in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert