Replace characters from a column of a data frame R
If your variable data1$c
is a factor, it's more efficient to change the labels of the factor levels than to create a new vector of characters:
levels(data1$c) <- sub("_", "-", levels(data1$c)) a b c1 0.73945260 a A-B2 0.75998815 b A-B3 0.19576725 c A-B4 0.85932140 d A-B5 0.80717115 e A-C6 0.09101492 f A-C7 0.10183586 g A-C8 0.97742424 h A-C9 0.21364521 i A-C10 0.02389782 j A-C
You can use the stringr
library:
library('stringr')a <- runif(10)b <- letters[1:10]c <- c(rep('A-B', 4), rep('A_B', 6))data <- data.frame(a, b, c)data# a b c# 1 0.19426707 a A-B# 2 0.12902673 b A-B# 3 0.78324955 c A-B# 4 0.06469028 d A-B# 5 0.34752264 e A_C# 6 0.55313288 f A_C# 7 0.31264280 g A_C# 8 0.33759921 h A_C# 9 0.72322599 i A_C# 10 0.25223075 j A_Cdata$c <- str_replace_all(data$c, '_', '-')data# a b c# 1 0.19426707 a A-B# 2 0.12902673 b A-B# 3 0.78324955 c A-B# 4 0.06469028 d A-B# 5 0.34752264 e A-C# 6 0.55313288 f A-C# 7 0.31264280 g A-C# 8 0.33759921 h A-C# 9 0.72322599 i A-C# 10 0.25223075 j A-C
Note that this does change factored variables into character.