[R] help wrapping findInterval into a function

David Winsemius dwinsemius at comcast.net
Wed Dec 7 06:07:02 CET 2011

On Dec 6, 2011, at 5:53 PM, Steve E. wrote:

> Bill (and David),
> Thank you very much for taking the time to respond to my query.
> You were right, I was creating and calling the function exactly as  
> you had
> predicted.  I revised the structure based on your suggestion.  It  
> runs but
> the output is an array of the flags that are not attached to the  
> data frame,
> not a new column in the data frame as was my intention.
> So, the new configuration I tried was like this (where DataFrame is  
> not a
> real data frame but just the word "DataFrame"):
> WQFlags <- function(DataFrame) {DataFrame$CalciumFlag <-  
> with(DataFrame,
> ifelse(variable == "CaD_ICP", (dataqualifier <- c("Y", 'Q', "", "A")
> [findInterval(DataFrame$value, c(-Inf, 0.027, 0.1, 100, Inf))]),""))
> }
> I called it using:
> WaterQualityData <- WQFlags(WaterQualityData)

Unless you provide either the original data or an unambiguous ( at the  
level the R interpreter would see, not at the level of what you see  
when you print a dataframe) description of your data you will get at  
the very best educated guesses. Use str() or dput().

> Again, the output is simply an array of the flags, unattached to a  
> data
> frame.  Can you suggest a way to modify this to make it work as  
> desired, or,
> in the worst case, can I attach the resulting array of flag values?

Do you mean "attach" in the sense of using the R function `attach`? If  
so, then please do not. (And please ignore any advice or the examples  
concerning that issue you might get from reading Crawley's text.)


Good night.

David Winsemius, MD
West Hartford, CT

More information about the R-help mailing list