title: tapply function complains that args are unequal length yet they appear to match
body: <p>Here is the failing call, error messages and some displays to show the lengths in question:</p>
  
  <pre><code>it &lt;- tapply(molten, c(molten$Activity, molten$Subject, molten$variable), mean)
  # Error in tapply(molten, c(molten$Activity, molten$Subject, molten$variable),  : 
  #  arguments must have same length
  
  length(molten$Activity)
  # [1] 679734
  
  length(molten$Subject)
  # [1] 679734
  
  length(molten$variable)
  # [1] 679734
  
  dim(molten)
  # [1] 679734      4
  
  str(molten)
  # 'data.frame': 679734 obs. of  4 variables:
  #  $ Activity: Factor w/ 6 levels "WALKING","WALKING_UPSTAIRS",..: 5 5 5 5 5 5 5 5 5 5 ...
  #  $ Subject : Factor w/ 30 levels "1","2","3","4",..: 2 2 2 2 2 2 2 2 2 2 ...
  #  $ variable: Factor w/ 66 levels "tBodyAcc-mean()-X",..: 1 1 1 1 1 1 1 1 1 1 ...
  #  $ value   : num  0.257 0.286 0.275 0.27 0.275 ...
  </code></pre>