Reputation: 121
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
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