Using some versions of R (2.8 and 2.9) you sometimes get the mystifying error message "$ operator is invalid for atomic vectors" . This can happen even if the R code you are running worked in earlier versions.
This may be due to inputting data as matrix data rather than a dataframe in R. You can so this conversion easily using the command as.data.frame.
% matrix data b=matrix(a,3,2,byrow=T) % converted to dataframe format c=as.data.frame(b)
This advice is presented in fuller detail here.