[R] Trying to understand the magic of lm (Still trying)

David Winsemius dw|n@em|u@ @end|ng |rom comc@@t@net
Fri May 10 22:29:58 CEST 2019


On 5/10/19 12:53 PM, Sorkin, John wrote:
> A number of people have helped me in my mission to understand how lm (and other fucntions) are able to pass a dataframe and then refer to a specific column in the dataframe. I thank everyone who has responded. I now know a bit about deparse(substitute(xx)), but I still don't fully understand how it works. The program below attempts to print a column of a dataframe from a function whose parameters include the dataframe (df) and the column requested (col). The program works fine until the last print statement were I receive an error,  Error in `[.data.frame`(df, , col) : object 'y' not found . I hope someone can explain to me (1) why my code does not work, and (2) what I can do to fix it.
>
>
> Many thanks to everyone who tries to help lost souls like me!
>
>
> Thank you,
>
> John
>
>
> data <- data.frame(x=c(1,2,3,4,5),y=c(5,4,3,2,1))
> data
>
> doit <- function(df,col){
>    dfx <- deparse(substitute(df))
>    colx<- deparse(substitute(col))
>
>    cat("results of deparse substitute")
>    print(colx)
>    print (dfx)
>
>    cat("I can print the columns using column relative reference\n")
>    print(df[,1])
>    print(df[,2])
>
>    cat("I can print the entire data frame \n")
>    print(df)
>
>    cat("I can print a single columng from the dataframe using a column name\n")
>    #

#Try instead:

     print( df[ , colx]  # colx will be a character value, ... there is 
no `y`-object

> #print(df[,col])
> }
>
> doit(data,y)
>
>
>
>
>
>
>
>
>
> John David Sorkin M.D., Ph.D.
> Professor of Medicine
> Chief, Biostatistics and Informatics
> University of Maryland School of Medicine Division of Gerontology and Geriatric Medicine
> Baltimore VA Medical Center
> 10 North Greene Street
> GRECC (BT/18/GR)
> Baltimore, MD 21201-1524
> (Phone) 410-605-7119
> (Fax) 410-605-7913 (Please call phone number above prior to faxing)
>
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.



More information about the R-help mailing list