thank you. yes I want to loop over the elements of the data. I want the output to be corresponded to the input by unchanging index. at the same time, the data that is more than c value should follow the function (a*(data-c)^0.5)+(b*(data-c), and the rest (same or less than c) should return a zero. I tried adjusting the code (which is still in ridiculous form and need some comments);
fun<-function(a,b,c,data) { N=rep(NA,length(data)) for (i in 1:length(data)){ if(data>c){ N[i]<-(a*(data-c)^0.5)+(b*(data-c))} else {N[i]<-0} } return(N)} #try dummy y=c(100,210,320,130,170,120,220,90,55,45) try=fun(10000,0.2,150,data=y) On Mon, Oct 22, 2012 at 3:51 PM, Balqis <aehan3...@gmail.com> wrote: > Hi all, > > I'm trying to create a function where it can process a vector and also > give a vector output accordingly > #input: a,b anc c are constants, data is the vector > > #set the function > fun<-function(a,b,c,data) > { > N=as.vector() > for (i in min(data):max(data)){ > if(i>c){ > N<-(a*(i-c)^0.5)+(b*(i-c))} > else > {N<-0}} > return(N) > } > > #try dummy > data=c(100,210,320,130,170,120,220,90,55,45) > try=fun(10000,0.2,150,data=data) > > what I get is: > Error in as.vector() : argument "x" is missing, with no default > > Please help, thanks! > [[alternative HTML version deleted]] ______________________________________________ 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.