#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>