Создать переменную true / false в R - PullRequest
1 голос
/ 16 апреля 2019

У меня есть один переменный столбец, который содержит большие строковые значения, которые являются несколькими словами.Я хочу создать столбец True / False, который сообщает true, если в интересующем столбце обнаружено определенное значение.

Я попытался изменить функцию со встроенным str_detect.

Dataset <- Dataset %>%
  mutate(new_column = str_detect('column.of.interest', "abcd"))

Мой ожидаемый результат был для всех строк, в которых мой интересующий столбец содержал «abcd», сообщал бы как ИСТИНА в моем новом столбце.Однако каждая строка в моем новом столбце отображается как ЛОЖЬ.

Ответы [ 2 ]

1 голос
/ 16 апреля 2019

Base R версия.Сначала создайте пример набора данных (спрашивающий: вы должны были сделать это; ответчики: вы должны всегда делать это):

> Dataset = data.frame(ID=1:10, column.of.interest=c(NA,"This","abcd","Foo","the abcde",NA,"Me","my","mo","END"))

, который выглядит следующим образом:

> Dataset
   ID column.of.interest
1   1               <NA>
2   2               This
3   3               abcd
4   4                Foo
5   5          the abcde
6   6               <NA>
7   7                 Me
8   8                 my
9   9                 mo
10 10                END

Затем выполните:

> Dataset$new_column <- grepl("abcd", Dataset$column.of.interest, ignore.case = T)

для получения:

> Dataset
   ID column.of.interest new_column
1   1               <NA>      FALSE
2   2               This      FALSE
3   3               abcd       TRUE
4   4                Foo      FALSE
5   5          the abcde       TRUE
6   6               <NA>      FALSE
7   7                 Me      FALSE
8   8                 my      FALSE
9   9                 mo      FALSE
10 10                END      FALSE

Вы можете или не можете ignore.case.

0 голосов
/ 16 апреля 2019

Вот один ответ, основанный на наборе данных из ggplot2

library(ggplot2)
library(dplyr)

diamonds %>% mutate(newCol = str_detect(clarity, "1"))

Оригинальная плохая версия ответа (см. Комментарии, почему вышеупомянутое лучше)

diamonds %>% mutate(newCol = ifelse(str_detect(clarity, "1"), "TRUE", "FALSE"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...