Dear Rees Morrison, Re: (...)> > What additional code would create a table output, with the function name in the left column, sorted alphabetically within a pattern, and the pattern of the function in the column to the right. Users could then sort by those patterns, rename some to suit themselves, etc.(...) The version below creates a tab-delimited table with 3 columns: seach string, package name and function name. Can be imported e.g. in Excel. Maybe not elegant, but seems to work (however: test it!). Column order can be changed by changing the printing order of newhits[ ,1] ,2 and ,3. In addition, Liviu Andronic's suggestion to use the package "sos" (strange name, but good tip) seems also interesting. Best wishes, Franklin Bretschneider -- Dept of Biology Kruytgebouw W711 Padualaan 8 3584 CH Utrecht The Netherlands - - - - - - - - - - - - - - - - - # categorize functions 2.R # Franklin Bretschneider # after R-help, R. Michael Weylandt # 08-04-2013 # this version produces a tab-delimited text file with # the columns: (search) pattern; (in which) package and function (name). # =====================================================================allfuncs = unlist(sapply(search(), ls)) n = length(allfuncs) allnames = names(allfuncs) package.names = substr(allnames, start=9, stop=nchar(allnames)) allfuncs = cbind(package.names, allfuncs) # which patterns to search: can be customized patterns = c("print", "plot", "axes", "axis", "color", "file", "read", "write", "load", "save","wave", "image", "table", "data", "apply", "title", "matrix", "names") patterns = sort(patterns) # optional k = length(patterns) # open output file options(verbose=FALSE) zz <- file("all functions.txt", open="wt") sink(zz, type="output") # print the output to the file cat("\n\n ") cat("pattern\tpackage\tfunction\r") for (i in 1:k) { cat("\n ") hits = allfuncs[grep(patterns[i], allfuncs[,2], ignore.case=TRUE),2] hitpkg = allfuncs[grep(patterns[i], allfuncs[,2], ignore.case=TRUE),1] hitpkg = gsub("\\d", "", hitpkg) labels = rep(patterns[i],length(hits)) newhits = cbind(labels, hitpkg, hits) newhits =newhits[order(newhits[,3]),] # sort data frame on basis of one column cat(sprintf(fmt = "%s\t%s\t %s\r", newhits[,1], newhits[,2], newhits[,3])) } cat("\n\n") ## back to the console sink(type="output") close(zz) # close the file print("Finished") [[alternative HTML version deleted]]