The trouble with using the ACF is that there can be other reasons for significant spikes, not just seasonality. So it is indicative but cannot be conclusive.
If the data had a small seasonal period (such as 4 for quarterly data or 12 for monthly data) then a simple approach is to use the
ets function in the
forecast package for R. If there is a seasonal pattern, it will choose a seasonal model.
But since your data are weekly (according to the comments in the answer from Mark T Patterson), that won't work because the seasonal period is too long, and because it is non-integer. X12 also won't help you (as suggested by @toomuchpj) as it is only designed for quarterly and monthly data.
The non-integer period will be a problem for any solution that assumes period=52, because the difference between 52 and 365/7 will become apparent with long series.
One approach is to use the
tbats model, also in the
forecast package in R. It will handle weekly seasonality and will automatically determine if a seasonal pattern is present. For example:
x <- ts(data, frequency=365/7)
fit <- tbats(x)
seasonal <- !is.null(fit$seasonal)
seasonal will be
TRUE if a seasonal model is chosen and otherwise