Фильтр по символу, создание столбца с результатами - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь создать график, показывающий два набора данных, если это тот символ или если это не тот символ.

В настоящее время я работаю с чем-то вроде:

setosa <-  iris%>%
  filter_all(any_vars(str_detect(., pattern = "setosa")))

Используя пример с радужной оболочкой, я хотел бы иметь возможность найти символ в строке, например: setosa, а затем нарисоватьграфик, показывающий setosa и not setosa.

См. ниже пример моего фрейма данных, столбец pd.Sails заполнен различными коннотациями одного и того же символа.Я хочу иметь возможность нарисовать график pd $ TWA v pd.TWS, и данные показывают результаты из столбца pd $ Sails на основе имени, поэтому J2 N или not J2 N

Извините, что отошелот Iris я изо всех сил пытался передать проблему!

Мой текущий df:


 pd.Boat   pd.Sails pd.TWA pd.TWS
1  Sojana RMAIN/J2 N   40.9   13.7
2  Sojana RMAIN/J2 N   38.8   13.0
3  Sojana RMAIN/J2 N   37.8   13.3
4  Sojana RMAIN/J2 N   37.3   13.3
5  Sojana RMAIN/J2 N   45.2   13.2
6  Sojana RMAIN/J2 N   50.6   13.2

dput(head)

structure(list(pd.Boat = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = "Sojana", class = "factor"), 
    pd.Sails = structure(c(36L, 36L, 36L, 36L, 36L, 36L), .Label = c("RMAIN", 
    "RMAIN/A2", "RMAIN/A2 C - north 19", "RMAIN/A2 C - north 19/Big Jonny", 
    "RMAIN/A2 C - north 19/CMiz SS", "RMAIN/A2 C - north 19/Spi SS v2/Big Jonny", 
    "RMAIN/A2 Doyle", "RMAIN/A2 Doyle/Big Jonny", "RMAIN/A2 Doyle/Spi SS v2", 
    "RMAIN/A2 Doyle/Spi SS v2/Big Jonny", "RMAIN/A2 N", "RMAIN/A2 N/Big Jonny", 
    "RMAIN/A2 N/Mizzen SS V2", "RMAIN/A2 N/Spi SS v2/Big Jonny", 
    "RMAIN/A2/Big Jonny", "RMAIN/A2/Big Jonny/Spi SS v2", "RMAIN/A2/Mizzen SS V2", 
    "RMAIN/A2/Spi SS v2", "RMAIN/A2/Spi SS v2/Big Jonny", "RMAIN/A2/Spi SS v2/Mizzen SS V2", 
    "RMAIN/A2N", "RMAIN/A2N/Big Jonny", "RMAIN/A2N/Mizzen SS V2", 
    "RMAIN/A2N/Spi SS v2/Big Jonny", "RMAIN/A4", "RMAIN/A4/Big Jonny", 
    "RMAIN/A4/Big Jonny/Mizzen SS V2", "RMAIN/A4/CMiz SS", "RMAIN/A4/J2 N/Big Jonny", 
    "RMAIN/A4/Mizzen SS V2", "RMAIN/A4/Spi SS v2/Big Jonny", 
    "RMAIN/J1 N", "RMAIN/J1 N/Black Betty v2", "RMAIN/J1 N/CMiz SS", 
    "RMAIN/J1 N/Mizzen SS V2", "RMAIN/J2 N", "RMAIN/J2 N/Black Betty v2", 
    "RMAIN/J2 N/CMiz SS", "RMAIN/J2 N/Mizzen SS V2"), class = "factor"), 
    pd.TWA = c(40.9, 38.8, 37.8, 37.3, 45.2, 50.6), pd.TWS = c(13.7, 
    13, 13.3, 13.3, 13.2, 13.2)), row.names = c(NA, 6L), class = "data.frame")

1 Ответ

1 голос
/ 17 мая 2019

Вы можете использовать ifelse для этого.

iris$sns <- ifelse(iris$Species == "setosa", "setosa", "notsetosa")

set.seed(357)
iris <- iris[sample(1:nrow(iris)),]

> head(iris[sample(1:nrow(iris)),])
   Sepal.Length Sepal.Width Petal.Length Petal.Width    Species       sns
17          5.4         3.9          1.3         0.4     setosa    setosa
9           4.4         2.9          1.4         0.2     setosa    setosa
42          4.5         2.3          1.3         0.3     setosa    setosa
34          5.5         4.2          1.4         0.2     setosa    setosa
96          5.7         3.0          4.2         1.2 versicolor notsetosa
68          5.8         2.7          4.1         1.0 versicolor notsetosa
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...