Hello, I would like to make a function which extracts a subset, from a dataset, with only the columns that I want (specifying their names). For example, having this matrix: > mydata<-matrix(c(22,1,3,2001,24,5,7,2002,26,7,8,2002,28,5,7,2003), byrow=TRUE, ncol=4, dimnames=list(c(1,2,3,4), c("age","day","month","year"))) > mydata age day month year 1 22 1 3 2001 2 24 5 7 2002 3 26 7 8 2002 4 28 5 7 2003 I would like to create a function like: x<-function(names) {subset(mydata, select=names) } So I can choose every time which columns select, i.e. when I call: x("age,day") it would returns: age day 1 22 1 2 24 5 3 26 7 4 28 5 Obviously it is not working, and I don't know how to do to fix it. Do you have any suggestion? Thank you very much
Nordlund, Dan (DSHS/RDA)
2012-Feb-09 17:17 UTC
[R] subset select="variable with a list of names"
> -----Original Message----- > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r- > project.org] On Behalf Of Francisco > Sent: Thursday, February 09, 2012 4:52 AM > To: r-help at r-project.org > Subject: [R] subset select="variable with a list of names" > > Hello, > I would like to make a function which extracts a subset, from a > dataset, > with only the columns that I want (specifying their names). > > For example, having this matrix: > > mydata<-matrix(c(22,1,3,2001,24,5,7,2002,26,7,8,2002,28,5,7,2003), > byrow=TRUE, ncol=4, dimnames=list(c(1,2,3,4), > c("age","day","month","year"))) > > > mydata > > age day month year > 1 22 1 3 2001 > 2 24 5 7 2002 > 3 26 7 8 2002 > 4 28 5 7 2003 > > > I would like to create a function like: > x<-function(names) {subset(mydata, select=names) } > > So I can choose every time which columns select, i.e. when I call: > x("age,day") > > it would returns: > age day > 1 22 1 > 2 24 5 > 3 26 7 > 4 28 5 > > Obviously it is not working, and I don't know how to do to fix it. Do > you have any suggestion? > > Thank you very muchGiven your function definition, the function call needs to be x(c("age","day")) Whether it is good form to write a function like this, I will leave to others to comment. Hope this is helpful, Dan Daniel J. Nordlund Washington State Department of Social and Health Services Planning, Performance, and Accountability Research and Data Analysis Division Olympia, WA 98504-5204