mikehuuuu
mikehuuuu

Reputation: 121

resetting a column using grepl

I'm trying to rewrite something such as:

Data$Program[Data$Program %in% c('A1', '1A1', 'A', 'AA', '11A')] <- 'A'

I would like to rewrite this line of code using something of the equivalent of like %A% from SQL. I believe there is a way to do this using the grepl function but I can not figure out how

Upvotes: 0

Views: 19

Answers (1)

Pdubbs
Pdubbs

Reputation: 1987

You're pretty much there. A straightforward application of grepl will do it.

Data$Program[grepl(Data$Program,'A')] <- 'A'

For example with the iris dataset:

myIris<-iris
myIris$Species <- as.character(myIris$Species)
myIris$Species[grepl('i',myIris$Species)] <- "I"
myIris$Species
  [1] "setosa" "setosa" "setosa" "setosa" "setosa" "setosa" "setosa" "setosa"
  [9] "setosa" "setosa" "setosa" "setosa" "setosa" "setosa" "setosa" "setosa"
 [17] "setosa" "setosa" "setosa" "setosa" "setosa" "setosa" "setosa" "setosa"
 [25] "setosa" "setosa" "setosa" "setosa" "setosa" "setosa" "setosa" "setosa"
 [33] "setosa" "setosa" "setosa" "setosa" "setosa" "setosa" "setosa" "setosa"
 [41] "setosa" "setosa" "setosa" "setosa" "setosa" "setosa" "setosa" "setosa"
 [49] "setosa" "setosa" "I"      "I"      "I"      "I"      "I"      "I"     
 [57] "I"      "I"      "I"      "I"      "I"      "I"      "I"      "I"     
 [65] "I"      "I"      "I"      "I"      "I"      "I"      "I"      "I"     
 [73] "I"      "I"      "I"      "I"      "I"      "I"      "I"      "I"     
 [81] "I"      "I"      "I"      "I"      "I"      "I"      "I"      "I"     
 [89] "I"      "I"      "I"      "I"      "I"      "I"      "I"      "I"     
 [97] "I"      "I"      "I"      "I"      "I"      "I"      "I"      "I"     
[105] "I"      "I"      "I"      "I"      "I"      "I"      "I"      "I"     
[113] "I"      "I"      "I"      "I"      "I"      "I"      "I"      "I"     
[121] "I"      "I"      "I"      "I"      "I"      "I"      "I"      "I"     
[129] "I"      "I"      "I"      "I"      "I"      "I"      "I"      "I"     
[137] "I"      "I"      "I"      "I"      "I"      "I"      "I"      "I"     
[145] "I"      "I"      "I"      "I"      "I"      "I"

Upvotes: 1

Related Questions