Вы близки, вам просто нужно избавиться от ifelse
:
amzp.a <- mutate(amzp, animalFood = grepl(searchTerm,
NozamaTitle, ignore.case = TRUE))
, который дает:
> amzp.a
ID NozamaItemID NozamaTitle animalFood
1 4557 12000017544 Starbucks Double Shot Espresso Light (4 Count, 6.5 Fl Oz Each) FALSE
2 4558 12000021992 Pepsi, 8Ct, 12Oz Bottle FALSE
3 4559 12000024542 Zuke'S Natural Hip Action dog Treats, 3 Oz TRUE
4 4560 12000030680 Pepsi Made With Real Sugar, 12 Ct, 12 Oz Cans FALSE
5 4561 12000030680 Pepsi Made With Real Sugar, 12 Ct, 12 Oz Cans FALSE
6 4562 12000030680 Pepsi Made With Real Sugar, 12 Ct, 12 Oz Cans FALSE
Используются данные:
amzp <- structure(list(ID = 4557:4562,
NozamaItemID = c(12000017544, 12000021992, 12000024542, 12000030680, 12000030680, 12000030680),
NozamaTitle = structure(c(4L, 1L, 2L, 3L, 3L, 3L), .Label = c("Pepsi, 8Ct, 12Oz Bottle","Zuke'S Natural Hip Action dog Treats, 3 Oz","Pepsi Made With Real Sugar, 12 Ct, 12 Oz Cans","Starbucks Double Shot Espresso Light (4 Count, 6.5 Fl Oz Each)"), class = "factor")),
.Names = c("ID", "NozamaItemID", "NozamaTitle"), class = "data.frame", row.names = c(NA, -6L))
EDIT: Ваш исходный код:
amzp.a <- mutate(amzp, animalFood = ifelse(grepl(searchTerm, amzp$NozamaTitle, ignore.case = TRUE) == TRUE, TRUE, FALSE))
на самом деле работает. Хотя он содержит несколько компонентов, которые не нужны (в ifelse
-statement и использование data$column
внутри стандартной функции dplyr), это дает желаемый результат:
> amzp.a
ID NozamaItemID NozamaTitle animalFood
1 4557 12000017544 Starbucks Double Shot Espresso Light (4 Count, 6.5 Fl Oz Each) FALSE
2 4558 12000021992 Pepsi, 8Ct, 12Oz Bottle FALSE
3 4559 12000024542 Zuke'S Natural Hip Action dog Treats, 3 Oz TRUE
4 4560 12000030680 Pepsi Made With Real Sugar, 12 Ct, 12 Oz Cans FALSE
5 4561 12000030680 Pepsi Made With Real Sugar, 12 Ct, 12 Oz Cans FALSE
6 4562 12000030680 Pepsi Made With Real Sugar, 12 Ct, 12 Oz Cans FALSE
Таким образом, вы можете описать «не работает " утверждение более подробно.
@DrikLX, пожалуйста, воздержитесь от добавления фрагментов кода, когда они не работают. – Jaap
Кроме того: у вас гораздо больше шансов получить хороший ответ, когда вы включаете [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-воспроизводимый пример/5963610) – Jaap
@jaap, я не согласен с вашим первым комментарием - если бы они не предоставили никакого кода, люди спросили бы их: «Что вы пробовали? ? и для них лучше учиться, если люди могут сказать им, почему их подход не удался. –