Hi: Short answer: use one dot, not three:
> cast(french_fries, . ~ subject) Using painty as value column. Use the value argument to cast to override this choice Aggregation requires fun.aggregate: length used as default value 3 10 15 16 19 31 51 52 63 78 79 86 1 (all) 54 60 60 60 60 54 60 60 60 60 54 54 Long answer: It's the same as using . in a model formula. The ... construct is used as a formal argument in a function *definition* to allow passage of needed arguments in a function call that are not part of the list of formal arguments. I noticed > args(cast) function (data, formula = ... ~ variable, fun.aggregate = NULL, ..., margins = FALSE, subset = TRUE, df = FALSE, fill = NULL, add.missing = FALSE, value = guess_value(data)) so I can see where you may have gotten confused. Here's an example using the same data frame where the ... argument comes into play: # melt the response variables (the sensory attributes) into # a factor variable for the attributes themselves and a value # variable for their corresponding values. ffm <- melt(french_fries, id = c('subject', 'time', 'treatment', 'rep')) head(ffm) # Recast the data so that the average score per subject/treatment score is produced. # However, there are NAs in the data frame, so we need to pass na.rm = TRUE: cast(ffm, subject + treatment ~ variable, value_var = 'value', fun.aggregate = 'mean', na.rm = TRUE) # To average over all subjects, treatments, times and reps, cast(ffm, . ~ variable, value_var = 'value', fun.aggregate = 'mean', na.rm = TRUE) value potato buttery grassy rancid painty 1 (all) 6.952518 1.823699 0.6641727 3.85223 2.521758 na.rm is not part of the formal argument list to cast(), but because the ... construct is present, we can pass na.rm = TRUE to the mean() function used to aggregate the data in the actual call. Observe that > args(mean.default) function (x, trim = 0, na.rm = FALSE, ...) so the na.rm = TRUE argument in the call to cast() is actually passed to mean(). [To understand how this works, you need to do some study about function writing; the R Language Definition manual is one place where this is described in detail. The formal arguments to mean.default() are x, trim, na.rm and ...; trim and na.rm have default values 0 and FALSE than can be overridden in an actual call to that function.] You should never need to use ... in an actual function call; in a formula, use of . on one side of ~ means to use all variables in the data frame except those used on the other side (the side where one or more variables are specified). For example, in a linear regression context, lm(y ~ ., data = mydata) would use all variables in mydata except y as covariates in the model. HTH, Dennis On Thu, Jun 9, 2011 at 12:10 AM, misterbray <misterb...@gmail.com> wrote: > Whenever I use "..." in the formula of the cast function, from the reshape > package, I get the following error: > > Error in `[.data.frame`(data, , variables, drop = FALSE) : > undefined columns selected > > > For example: > > data(french_fries) #available in the reshape package >> head(french_fries) > time treatment subject rep potato buttery grassy rancid painty > 61 1 1 3 1 2.9 0.0 0.0 0.0 5.5 > 25 1 1 3 2 14.0 0.0 0.0 1.1 0.0 > 62 1 1 10 1 11.0 6.4 0.0 0.0 0.0 > 26 1 1 10 2 9.9 5.9 2.9 2.2 0.0 > 63 1 1 15 1 1.2 0.1 0.0 1.1 5.1 > 27 1 1 15 2 8.8 3.0 3.6 1.5 2.3 > >>cast(french_fries, ...~ subject) > Using painty as value column. Use the value argument to cast to override > this choice > Error in `[.data.frame`(data, , variables, drop = FALSE) : > undefined columns selected > > > > > -- > View this message in context: > http://r.789695.n4.nabble.com/Reshape-cast-error-using-in-formula-expression-tp3584721p3584721.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.