0

If my data looks like this:

car.model     number of faults
Tesla X           1
Tesla X           4
Tesla X           0
Range Rover       0
Range Rover       7
Range Rover       1
Fiat 500          1
Fiat 500          1
Fiat 500          2

And I want a new column max.number.faults which records the highest faults for each model:

car.model     number of faults  max.number.faults
Tesla X           1           4
Tesla X           4           4
Tesla X           0           4
Range Rover       0           7
Range Rover       7           7
Range Rover       1           7
Fiat 500          1           2
Fiat 500          1           2 
Fiat 500          2           2

How could I go about coding this in R?

linog
  • 5,786
  • 3
  • 14
  • 28
  • Does this answer your question? [Calculate group mean (or other summary stats) and assign to original data](https://stackoverflow.com/questions/6053620/calculate-group-mean-or-other-summary-stats-and-assign-to-original-data) – mnist May 04 '20 at 13:41

1 Answers1

0

You can use dplyr:

library(dplyr)
df %>% group_by(car.model) %>% mutate(max.number.faults = max(`number of faults`))

or data.table

library(data.table)
setDT(df)
df[,max.number.faults := max(`number of faults`) , by = "car.model"]
linog
  • 5,786
  • 3
  • 14
  • 28