filter () из dplyr в R не работает для создания подмножества данных - PullRequest
0 голосов
/ 13 мая 2018

, поэтому в настоящее время я пытаюсь передать данные из данных о землетрясениях в R, используя filter (), чтобы получать записи только о землетрясениях в Монтане и Калифорнии, но мне не везет, в основном это просто говорит мне, что таких записей не существует и возвращает 0.

Вот мой код:

load(file = "Quake Data All Years.Rdata")
filter(allQuakeData, allQuakeData$place %in% c("CA","OK"))

Вот вывод:

  [1] time            latitude        longitude       depth          
  [5] mag             magType         nst             gap            
  [9] dmin            rms             net             id             
 [13] updated         place           type            horizontalError
 [17] depthError      magError        magNst          status         
 [21] locationSource  magSource       year           
 <0 rows> (or 0-length row.names)

Вот результат head (dput (df)), где df - фрейм данных (я использовал head, потому что это очень большой df): dput

Вот пример с набором данных diamonds из ggplot2:

filter(diamonds, (cut == "Ideal" | cut == "Premium"))

производит следующее:

# A tibble: 35,342 x 10
carat     cut color clarity depth table price     x     y     z
<dbl>   <ord> <ord>   <ord> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
1  0.23   Ideal     E     SI2  61.5    55   326  3.95  3.98  2.43
2  0.21 Premium     E     SI1  59.8    61   326  3.89  3.84  2.31
3  0.29 Premium     I     VS2  62.4    58   334  4.20  4.23  2.63
4  0.23   Ideal     J     VS1  62.8    56   340  3.93  3.90  2.46
5  0.22 Premium     F     SI1  60.4    61   342  3.88  3.84  2.33
6  0.31   Ideal     J     SI2  62.2    54   344  4.35  4.37  2.71
7  0.20 Premium     E     SI2  60.2    62   345  3.79  3.75  2.27
8  0.32 Premium     E      I1  60.9    58   345  4.38  4.42  2.68
9  0.30   Ideal     I     SI2  62.0    54   348  4.31  4.34  2.68
10  0.24 Premium     I     VS1  62.5    57   355  3.97  3.94  2.47 
# ... with 35,332 more rows

1 Ответ

0 голосов
/ 13 мая 2018

Нам не нужны $

filter(allQuakeData, grepl("\\b(CA|OK)\\b", place))

Или с str_detect

allQuakeData %>%
    filter(str_detect(place, "\\b(CA|OK)\\b"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...