R-helpers: One of my intrepid students came up with a solution to a problem where they need to write a function that takes a vector x and a "scalar" d, and return the indices of the vector x where x %% d is equal to 0 (x is evenly divisible by d). I thought I had a good handle on the potential solutions, but one of my students sent me a function that WORKS, but for the life of me I can't figure out WHY. Here is the solution:
remainderFunction<-function(x,d) { ifelse(x%%d==0,yes=return(which(x%%d==0)),no=return(NULL)) } remainderFunction(x=c(23:47),d=3) I've never seen an ifelse statement used that way, and I was fully expecting that to NOT work, or to place the output of which(x%%d==0) in each location where the statement x%%d==0 was true. Any ideas on deconstructing this? --j -- Jonathan A. Greenberg, PhD Assistant Professor Global Environmental Analysis and Remote Sensing (GEARS) Laboratory Department of Geography and Geographic Information Science University of Illinois at Urbana-Champaign 607 South Mathews Avenue, MC 150 Urbana, IL 61801 Phone: 217-300-1924 http://www.geog.illinois.edu/~jgrn/ AIM: jgrn307, MSN: jgrn...@hotmail.com, Gchat: jgrn307, Skype: jgrn3007 ______________________________________________ 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.