peakFilter() and mzFilter() allow passing additional rules to the calculated statistics.
Specifically, "min", "max", "mean", "var", and "nnzero" are calculated for the intensities of each peak.
You should be able to pass rules as additional arguments as logical expressions. E.g., "peakFilter(x, min > 1, max < 100)".
If you want greater control than that, you can just operate on the rows of spectra() directly. Each row is a vector of feature intensities.
As for comparing peak intensities, you'd need to be more specific about what kind of comparison you want to make.