Как изменить фразу из двух слов в столбце в R

#r

#r

Вопрос:

У меня есть фрейм данных, подобный my_df . Во всем столбце color я хотел бы изменить содержимое всех ячеек, содержащих слово «blue», только на слово «blue» и в конечном итоге получить фрейм данных, подобный my_df2 .

 clothes <- c("skirt", "jacket", "shirt")
colors <- c("light blue", "dark blue", "ice blue")
my_df <- as.data.frame(cbind(clothes, colors))

color_blue <- c("blue", "blue", "blue")
my_df2 <- as.data.frame(cbind(clothes, color_blue))
  

Я пробовал это:

 my_df[grepl("blue", my_df$colors),] == "blue"
 
  

Спасибо за проявленный интерес

Ответ №1:

Вы можете подмножество вашего my_df использования grepl() , которое обнаруживает шаблоны и возвращает логический вектор.

 clothes <- c("skirt", "jacket", "shirt", "shoes")
colors <- c("light blue", "dark blue", "ice blue", "grey")
my_df <- as.data.frame(cbind(clothes, colors))
my_df$color_blue[grepl("blue", my_df$colors)] <- "blue"
my_df
  clothes     colors color_blue
1   skirt light blue       blue
2  jacket  dark blue       blue
3   shirt   ice blue       blue
4   shoes       grey       <NA>