[R] passing field name parameter to function

jim holtman jholtman at gmail.com
Sun Oct 11 03:31:44 CEST 2009


You need to understand how accessing elements of a dataframe happen,
especially the '[[' operator (?"[[")

x <- function(dataFrame, name) dataFrame[[name]]

On Sat, Oct 10, 2009 at 9:27 PM, tdm <philb at philbrierley.com> wrote:
>
> Hi,
>
> I am passing a data frame and field name to a function. I've figured out how
> I can create the formula based on the passed in field name, but I'm
> struggling to create a vector based in that field.
>
> for example if I hard code with the actual field name
>
> Y = df$Target, everything works fine.
>
> but if I use the passed in parameter name, it doesn't give me what I want,
>
> Y = df$mytarget
>
>
> Here is the function,
>
> # trying to pass field name to a function
> logistictest <- function(df,mytarget)
> {
>
> #library for AUC calculation
> library(caTools)
>
> #build logistic model
> mytarget <- deparse(substitute(mytarget))
> myformula <- paste(mytarget," ~ .")
> myformula <- deparse(substitute(myformula))
> logistic_reg <- glm(myformula , data=df, family=binomial(link="logit"))
> print("model build OK")
>
> #score up
> scores <- predict(logistic_reg, type="response", df)
> print("model scored OK")
>
> #calc AUC
> Y = df$mytarget
>
> auc <- colAUC(scores,Y)
> print("auc calculated OK")
>
> }
>
> logistictest(df=trainset,mytarget=Target)
>
>
> [1] "model build OK"
> [1] "model scored OK"
> Error in as.vector(x, mode) : invalid 'mode' argument
> --
> View this message in context: http://www.nabble.com/passing-field-name-parameter-to-function-tp25840014p25840014.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at 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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem that you are trying to solve?




More information about the R-help mailing list