On Dec 24, 2010, at 4:29 PM, John Sorkin wrote:
I am trying to learn more about how to write functions. I would like
to pass a data frame (or matrix) and depending on the parameters
passed to the function work with a given column of the data frame or
matrix. My function, learnfn is given below as are two calls to the
function. The first call is an attempt to print the x column from
the data frame, the second call is an attempt to print the y column.
I hope someone can modify my function so it works.
Thank you,
John
# create data frame
x<-1:10
y <- x+rnorm(10)
z <- 11:20
data <- data.frame(x,y,z)
data
learnfn <- function(data,column) {
print(data)
#data[,"column"] # there is no column named "column"
# Try:
data[column] # or
data[[column]]
# the column object will have a character value and either "[" or "[["
will evaluate an unquoted argument.
}
# work on the "x" column
learnfn(data,x)
# and there is no x ... well there is, but if you passed a vector
that evaluated to 1:10 to "[" you would be asking for the first 10
columns, and "[[" would throw an error.
# Try:
learnfn(data, "x")
You seem to be reversing the expected conventions of quoting or not-
quoting. When you invoke a function you need to send it a specific
value but when you are writing the function you need to leave values
open.
--
David.
# work on the "y" column
learnfn(data,y)
John David Sorkin M.D., Ph.D.
Chief, Biostatistics and Informatics
University of Maryland School of Medicine Division of Gerontology
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)
Confidentiality Statement:
This email message, including any attachments, is for th...{{dropped:
6}}
______________________________________________
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.
David Winsemius, MD
West Hartford, CT
______________________________________________
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.