From: Ben Hunter <bjameshunter_at_gmail.com>

Date: Sat, 02 Apr 2011 10:35:09 -0700

R-help_at_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. Received on Sat 02 Apr 2011 - 17:40:00 GMT

Date: Sat, 02 Apr 2011 10:35:09 -0700

Thanks so much Josh. That absolutely does help. I was just stuck on the function regexpr and didn't consider how handy the other string handling functions would be. As far as attaching 'i' to 'vector', that was indeed a typo. As I was going through my code to make it more readable (at least that was my intent), I forgot to switch the variable 'vector' to 'indices'. It was the first of our weekly 'beer Fridays' at the office and I wasn't as sharp an editor as I would have been otherwise. Nonetheless, I wanted to get the e-mail off before I left.

I'll make sure to put some working code up next time.

-Ben

On Fri, Apr 1, 2011 at 7:08 PM, Joshua Wiley <jwiley.psych_at_gmail.com> wrote:

> Hi Ben,

*>
**> I am having some trouble figuring out what it is exactly you want. A
**> workable example would be nice and then (even if just manually) typed
**> out what you would like it to return based on a given input. I almost
**> think you just want grep().
**>
**> grep("test", c("test", "not", "test2", "not"), value = TRUE)
**> [1] "test" "test2"
**>
**> using your example:
**>
**> grep("string", d[,"Column.You.Want"], value = TRUE)
**>
**> On Fri, Apr 1, 2011 at 5:39 PM, Ben Hunter <bjameshunter_at_gmail.com> wrote:
**> > I'm stuck here. The following code works great if I just use it on the
**> > command line in a 'for' loop. Once I try to define it as a function as
**> seen
**> > below, I get bad results. I'm trying to return a vector of column indices
**> > based on a short string that is contained in a selection (length of about
**> > 70) of long column names that changes from time to time. Is there an
**> > existing function that will do this for me? The more I think about this
**> > problem, the more I feel there has to be a function out there. I've not
**> > found it.
**> >
**> >
**> > ind <- function(col, string, vector){ # this is really the problem. I
**> don't
**> > feel like I'm declaring these arguments properly.
**> > indices <- vector(mode = 'numeric') # I am not entirely confident that
**> > this use is necessary. Is indices <- c() okay?
**>
**> indices <- c() would sort of work, but vector() is better. Also, if
**> you actually want your function to be returning integers, you should
**> instatiate indices as an integer class vector, not numeric.
**>
**> > for (i in 1:length(col)){
**> > num <- regexpr(str, col[i])
**>
**> str() is a function, and as far as I can tell, a variable "str" is not
**> defined anywhere in your function or your functions argument. Did you
**> mean "string"?
**>
**> > if (num != -1){
**> > indices <- c(vector, i) # I've also had success with indices <-
**> > append(indices, i)
**>
**> why are you combining "vector" with i over and over? This will give
**> you something like:
**>
**> c("vector", i1, "vector", i2, "vector", i3, etc.) except obviously
**> replace i1, i3 with their values and "vector" with its value. Is that
**> what you want?
**>
**> > }
**> > }
**> > indices
**> > }
**> >
**> > ind(d[,'Column.I.want'], 'string', 'output.vector')
**> >
**> > Am I wrong here? I've read that the last statement in the function is
**> what
**> > it will return, and what I want is a vector of integers.
**>
**> yes, if return() is not explicitly specified inside the function, then
**> it will return the output of the last statement.
**>
**> >
**> > Thanks,
**>
**> Thank you for providing code of what you tried. For future reference,
**> it is good to at least provide useable input data and then show us
**> what the output you would like is. For example: "Blah blah blah, I
**> have a vector d <- c(1, 2, 3), how can I find the average of this
**> (i.e., 2)?" To which you would get the answer: "mean(d)" or some such.
**>
**> If grep() is not actually what you are after, can you let us know a
**> little bit more about what you want?
**>
**> Hope this helps,
**>
**> Josh
**>
**>
**> >
**> > -Ben
**> >
**> > [[alternative HTML version deleted]]
**> >
**> > ______________________________________________
**> > R-help_at_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.
**>
**>
**> --
**> Joshua Wiley
**> Ph.D. Student, Health Psychology
**> University of California, Los Angeles
**> http://www.joshuawiley.com/
**>
*

[[alternative HTML version deleted]]

R-help_at_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. Received on Sat 02 Apr 2011 - 17:40:00 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Sat 02 Apr 2011 - 19:30:26 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*