You can delete numbers at the end with sub and do aggregate
do.call(`data.frame`, aggregate(Score~cbind(Rptname=sub('\\d+$', '', Rptname)), df, sum))
Or use transform with aggregate (as suggested by @docendo discimus)
aggregate(Score ~ Rptname, transform(df, Rptname = sub("\\d+$", "", Rptname)), sum)
Or option with data.table
library(data.table) setDT(df)[, .(Score=sum(Score)), by=list(Rptname=sub('\\d+$','', Rptname))]
Or using rowsum (suggested by @alexis_laz
with(df, rowsum(Score, sub('\\d+$', '', Rptname)))
Update
If the grouping is based on the first three characters, you can use substr
aggregate(Score~Rptname, transform(df, Rptname=substr(Rptname, 1,3)), sum)