Вы можете использовать следующий код с функцией base
replace
и dplyr
if_else
.С replace
длина должна быть одинаковой.Следовательно, нам необходимо также задать символьный вектор логическим выражением.
Для умножения, зависящего от вида, нам нужно использовать if_else
, потому что мы не «остаемся в пределах нашей переменной / столбца», а нуждаемся в информации из других столбцов / переменных (в данном случае Species).
library(dplyr)
data("iris")
iris$Species <- as.character(iris$Species)
iris2 <- iris %>%
mutate(Sepal.Length = if_else(Species != "versicolor", Sepal.Length * 100, Sepal.Length),
Species = replace(Species, Species!="versicolor",
paste0(Species[ Species!="versicolor"], "_o0o0o0o0o0o0") ))
Это дает:
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 510 3.5 1.4 0.2 setosa_o0o0o0o0o0o0
2 7 3.2 4.7 1.4 versicolor
3 630 3.3 6.0 2.5 virginica_o0o0o0o0o0o0