Я создал функцию, которая дает желаемый результат:
dum <- function(kw, col, type=c(T, F)) {
t <- as.data.frame(grep(as.character(kw), col, ignore.case=T))
t$one <- type[1]
colnames(t) <- c("col1","dummy")
t2 <- as.data.frame(grep(as.character(kw), col, ignore.case=T,
invert=T))
t2$zero <- type[2]
colnames(t2) <- c("col1","dummy")
t3<-rbind(t, t2)
t3<-t3[order(t3$col1), ]
return(t3$dummy)
}
Это может быть не очень элегантно, но работает.Используя ваш пример, ваш фрейм данных равен df
, а столбец, на который вы пытаетесь сослаться, - df$Good_at
Drawing <- dum("drawing", df$Good_at)
> Drawing
TRUE
FALSE
...
Cooking <- dum("cooking", df$Good_at)
> Cooking
FALSE
TRUE
...