Specifieke rijen toevoegen in r: met voorbeelden


We kunnen de volgende syntaxis gebruiken om specifieke rijen van een dataframe in R toe te voegen:

 with (df, sum (column_1[column_2 == ' some value ']))

Deze syntaxis vindt de rijsom van kolom 1 waarin kolom 2 gelijk is aan een waarde, waarbij het dataframe df wordt genoemd.

Deze tutorial biedt verschillende voorbeelden van hoe u deze functie praktisch kunt gebruiken met het volgende dataframe:

 #create data frame
df <- data.frame(team = c('A', 'A', 'B', 'B', 'B', 'C', 'C'),
points = c(4, 7, 8, 8, 8, 9, 12),
rebounds = c(3, 3, 4, 4, 6, 7, 7))

#view data frame
df

  team points rebounds
1 to 4 3
2 to 7 3
3 B 8 4
4 B 8 4
5 B 8 6
6 C 9 7
7 C 12 7

Voorbeeld 1: rijen toevoegen op basis van een kolomwaarde

De volgende code laat zien hoe je de som kunt vinden van alle rijen in de puntenkolom waarin team gelijk is aan C:

 #find sum of points where team is equal to 'C'
with (df, sum (points[team == ' C ']))

[1] 21

En de volgende code laat zien hoe je de som kunt vinden van alle rijen in de bouncekolom waarbij de waarde van de puntenkolom groter is dan 7:

 #find sum of rebounds where points is greater than 7
with (df, sum (rebounds[points > 7]))

[1] 28

Voorbeeld 2: rijen toevoegen op basis van de waarde van meerdere kolommen

De volgende code laat zien hoe je de som van de rijen in de rebounds-kolom kunt vinden waarbij de waarde van de puntenkolom kleiner is dan 8 of de waarde van de teamkolom gelijk is aan C:

 with (df, sum (rebounds[points < 8 | team == ' C ']))

[1] 20

En de volgende code laat zien hoe je de som van de rijen in de rebounds-kolom kunt vinden waarbij de waarde in de puntenkolom kleiner is dan 10 en de waarde in de teamkolom gelijk is aan B:

 with (df, sum (rebounds[points < 10 & team == ' B ']))

[1] 14

Aanvullende bronnen

Hoe lijnen in R te rangschikken
Hoe dubbele regels in R te verwijderen
Rijen verwijderen met enkele of alle NA’s in R

Einen Kommentar hinzufügen

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