Home > OS >  Add a character to each word within a sentence in R
Add a character to each word within a sentence in R

Time:08-10

I have sentences in R (they represent column names of an SQL query), like the following:

sample_sentence <- "CITY, AGE,NAME,LAST_NAME, COUNTRY"

I would need to add a character(s) like "k." in front of every word of the sentence. Notice how sometimes words within the sentence may be separated by a comma and a space, but sometimes just by a comma. The desired output would be:

new_sentence <- "k.CITY, k.AGE,k.NAME,k.LAST_NAME, k.COUNTRY"

I would prefer to achieve this without using a loop for. I saw this post Add a character to the start of every word but there they work with a vector and I can't figure out how to apply that code to my example. Thanks

CodePudding user response:

sample_sentence <- "CITY, AGE,NAME,LAST_NAME, COUNTRY"
gsub(pattern = "(\\w )", replacement = "k.\\1", sample_sentence)
# [1] "k.CITY, k.AGE,k.NAME,k.LAST_NAME, k.COUNTRY"

Explanation: in regex \\w matches one or more "word" characters, and putting it in () makes each match a "capturing group". We replace each capture group with k.\\1 where \\1 refers to every group captured by the first set of ().

CodePudding user response:

A possible solution:

sample_sentence <- "CITY, AGE,NAME,LAST_NAME, COUNTRY"

paste0("k.", gsub("(,\\s*)", "\\1k\\.", sample_sentence))

#> [1] "k.CITY, k.AGE,k.NAME,k.LAST_NAME, k.COUNTRY"
  • Related