Sorry, this should work fun1 <- function(n){ vec1 <- LETTERS if(n <=26){ res <- vec1[seq_len(n)] } else if(n>26 & n <=702){ res <- c(LETTERS,apply(expand.grid(vec1,vec1)[,2:1],1,paste,collapse=""))[1:n] } else if(n >702 & n <=18278){ res <- c(LETTERS,apply(expand.grid(vec1,vec1)[,2:1],1,paste,collapse=""),apply(expand.grid(vec1,vec1,vec1)[,3:1],1,paste,collapse=""))[1:n] } else { res <- NA } res } fun1(0) character(0) > fun1(8) [1] "A" "B" "C" "D" "E" "F" "G" "H" > fun1(40) [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" [16] "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z" "AA" "AB" "AC" "AD" [31] "AE" "AF" "AG" "AH" "AI" "AJ" "AK" "AL" "AM" "AN" > fun1(18279) [1] NA A.K.
On Monday, January 27, 2014 5:11 PM, Dustin Fife <fife.dus...@gmail.com> wrote: There seems to be a problem with that function: object 'vec1' not found. On Mon, Jan 27, 2014 at 4:05 PM, arun <smartpink...@yahoo.com> wrote: > > > HI, > > May be you can try: > > fun1 <- function(n){ > if(n <=26){ > res <- LETTERS[seq_len(n)] > } > else if(n>26 & n <=702){ > res <- > c(LETTERS,apply(expand.grid(vec1,vec1)[,2:1],1,paste,collapse=""))[1:n] > } > else if(n >702 & n <=18278){ > res <- > c(LETTERS,apply(expand.grid(vec1,vec1)[,2:1],1,paste,collapse=""),apply(expand.grid(vec1,vec1,vec1)[,3:1],1,paste,collapse=""))[1:n] > } > else { > NA > } > res > } > fun1(0) > #character(0) > fun1(2) > #[1] "A" "B" > > fun1(28) > A.K. > > > > > On Monday, January 27, 2014 4:41 PM, Dustin Fife <fife.dus...@gmail.com> > wrote: > Hi all, > > I frequently get requests to do data analysis where the person > references an excel column. e.g., "I want to analyze [insert complex > variable name], located at column AAQ in Excel." I've been doing is > gsub and inserting a part of the string for the complex variable name, > then going from there. But, I was trying to make function that returns > the following vector: > > excelVector = A, B, C, D,...AA, AB, AC...ZA, ZB, ZC,...AAA, AAB, AAC, etc. > > In other words, the argument would have one argument (n, or the number > of columns), then it would return a list like that shown above. Then, > all I would have to do is > > column.of.interest = which(excelVector=="AAQ") > > But I'm a bit stumped. The first part is easy: > > LETTERS[1:26] > > The next would probably use expand.grid, but all my potential > solutions are pretty clunky. > > Any ideas? > > ______________________________________________ > 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. > ______________________________________________ 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.