Согласно ?ifelse
, использование
ifelse (тест, да, нет)
и
test - объект, который может быть приведен в логический режим.
При grep
числовые индексы возвращаются на основе ?grep
значение - если FALSE, возвращается вектор, содержащий (целочисленные) индексы совпадений, определенных с помощью grep, а если TRUE, возвращается вектор, содержащий сами соответствующие элементы.
Таким образом, определенно, вход для ifelse
'test' не совпадает с выводом grep
.
Если мы хотим использовать grep
, мы можем использовать replace
, где используется
заменить (х, список, значения)
список - индексный вектор
-код
library(kableExtra)
library(dplyr)
df <- data.frame(x = c("bbb", "bba", "bbb"), y = c(-7, -7, 7)) %>%
mutate(x = cell_spec(x, "html",
color = replace(rep("black", n()), grep("a", x), "red")),
y = cell_spec(y, "html",
color = ifelse(y < 0, "red", "black")))
kable(df, "html", escape = F) %>% kable_styling("striped")
-выход