How to Use str_c in R (With Examples)

Spread the love

str_c is a function in R provided by the stringr package, a package in the tidyverse collection, designed for string manipulation. The str_c function is used to concatenate strings together. The use of str_c is pivotal when dealing with data manipulation and transformation in R.

Basic Usage of str_c

At its most basic level, str_c can be used to concatenate two or more strings. By default, it combines strings with no separator between them.

# Load the stringr package

str_c("Hello", "World")
# Output: "HelloWorld"

Concatenating with a Separator

You can concatenate strings with a separator by using the sep argument.

str_c("Hello", "World", sep = " ")
# Output: "Hello World"

Concatenating Vectors

str_c is particularly powerful when concatenating vectors of strings.

vector1 <- c("apple", "banana", "cherry")
vector2 <- c("fruit", "snack", "berry")
str_c(vector1, vector2, sep = " is a ")
# Output: "apple is a fruit" "banana is a snack" "cherry is a berry"

Handling Missing Values

When dealing with real-world data, handling missing values (NAs) is essential. The str_c function handles NAs intelligently by using the na argument to specify the string to replace NAs.

str_c("Hello", NA, "World", na = "-")
# Output: "Hello-World"

Collapsing Strings

The collapse argument in str_c allows you to concatenate all elements of a string vector into a single string.

fruits <- c("apple", "banana", "cherry")
str_c(fruits, collapse = ", ")
# Output: "apple, banana, cherry"

Combining str_c with Other stringr Functions

str_c can be combined with other stringr functions to perform more advanced string manipulations.

x <- c("apple", "banana", "cherry")
y <- str_c(str_to_title(x), collapse = ", ")
# Output: "Apple, Banana, Cherry"

Advanced Usage: Conditional Concatenation

In more complex scenarios, conditional concatenation might be necessary. For example, you might want to concatenate strings based on a condition applied to another variable or vector. Combining str_c with ifelse or logical subsetting can be very useful in such cases.

data <- data.frame(
  name = c("apple", "banana", "cherry"),
  type = c("fruit", "fruit", "berry"),
  healthy = c(TRUE, TRUE, TRUE)

data$name <- ifelse(data$healthy, 
                    str_c(data$name, " (healthy)"), 
                    str_c(data$name, " (not healthy)"))

# The name column of the data dataframe will now have " (healthy)" appended to each fruit name

Creating New Variables in a Data Frame

Often in data analysis, creating new variables is necessary, and str_c can be instrumental in creating new string variables based on existing ones.


data <- data %>% 
  mutate(description = str_c(name, " is a ", type, "."))

Performance Considerations

When dealing with large string vectors or data frames, the performance of string concatenation becomes crucial. The str_c function is optimized for performance and is usually preferable over base R functions like paste or paste0 due to its speed and handling of missing values.


str_c from the stringr package is a versatile and powerful function in R for string concatenation. Whether you are concatenating simple strings, combining vectors of strings, or performing more advanced string manipulations, str_c provides an efficient and intuitive way to achieve your goals.

Remember to handle missing values by using the na argument and to concatenate string vectors into a single string with the collapse argument. Additionally, the combination of str_c with other stringr functions and conditional concatenation allows for sophisticated string manipulations.

Posted in RTagged

Leave a Reply