1

I have a data frame, DF, and the column names all contain color names:

red_balloons green_balloons red_balls blue_balls green_hats red_horses yellow_things

What I would like to do is select multiple columns based on more than one color name. I can select one column at a time like this:

grep("red", colnames(DF))

But I cannot figure out or find out how to select multiple columns. I tried this:

grep(c("red", "blue"), colnames(DF))

But got the following warning:

Warning message:
In grep(c("mean()", "std()"), colnames(L21), value = FALSE) :
   argument 'pattern' has length > 1 and only the first element will be used

Suggestions?

1 Answer 1

3

You can use "|" for "or" in grep

grep("red|blue", DF, value=T)
# [1] "red_balloons" "red_balls"    "blue_balls"   "red_horses" 
Sign up to request clarification or add additional context in comments.

3 Comments

That worked. You know, I thought I had tried that, but what I had actually done was grep("red"|"blue", DF, value=T). Thanks.
Short and sweet, +1 :)
Is there also an option to use an object in stead of typing all names yourself?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.