On Tuesday 07 November 2006 3:28 pm, Tom McCallum wrote: > Hi everyone, Hi Tom,
Would this snippet work: for(i in 1:length(mylist))do.call(f, mylist[i]) On the other hand it is not easy to see why you would want to call the same function with differently named arguments - perhaps what you are really trying to do has a different (and better) solution ? best Vladimir Dergachev > > I am not sure this is possible so I would be interested in your > responses. Say I have a variable 'v' with the string "myargument" in and > I have a function 'f' that takes this argument as follows; > > f <- function( myargument=5 ) { > ... does something... > } > > Is there anyway I can say something like; > > f( v=10 ) such that it will be evaluated as f( myargument=10 ). > > I presume there may be some use eval and substitute but if someone could > point me in the right direction then that would be great. > > The end idea is to have a list of m items, declared somewhere else, which > can be evaluated as particular arguments named after their list names > > e.g > > mylist <- list( "a"=1, "b"=2, "c"=3 ) > > which can be passed to a function taking arguments a,b, or c and it will > be able to evaluate them accordingly : > > long hand this would evaluate to something like > f( a=mylist[["a"]] ); > f( b=mylist[["b"]] ); > f( c=mylist[["c"]] ); > > but I would have actually rewritten something like > for ( myvar in names( mylist ) ) { > f( some_clever_substitution_to_act_as_argument(myvar) = > mylist[[ myvar > ]] ); > } > > I hope I have explained myself clearly enough, if not please say so and I > will try and give a better example. > > Many thanks for your help > > Tom ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel