2017-07-10 1 views
0

Angesichts eines Datenrahmens df, warum kann ich eine der Spalten nicht filtern? Wenn ich nach irgendeiner Spalte filtere, ist alles OK, aber wenn die Variable Var gefiltert wird, werden 0 Beobachtungen zurückgegeben.Fehler bei der Verwendung des Filters

Mache ich einen Fehler?

library("tidyverse") 

A <- filter(df, Time == "PRE2" & GENDER == "2") 

# A tibble: 3 × 6 
    GENDER Time Var Tipo Carga values 
    <dbl> <chr> <chr> <chr> <chr> <chr> 
1  2 PRE2  BW <NA> <NA>  60 
2  2 PRE2  BW <NA> <NA> 54.5 
3  2 PRE2  BW <NA> <NA> 56.5 

Und die folgende Rückkehr keine Beobachtungen:

B <- filter(df, Time == "PRE2" & Var == "BW") 

Datenrahmen Beispiel:

df <- structure(list(GENDER = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
           1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 
           2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
           1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 
           2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
           1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 
           2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
           1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), Time = c("PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", "PRE2", 
                       "PRE2", "PRE2", "PRE2", "PRE2"), Var = c(" BW", " BW", 
                                 " BW", " BW", " BW", " BW", " BW", " BW", " BW", 
                                 " BW", " BW", " BW", " BW", " BW", " BW", " BW", 
                                 " BW", " BW", " BW", " BW", " BW", " BW", " BW", 
                                 " BW", " BW", " BW", " BW", " BW", " BW", " BW", 
                                 " BW", " BW", " BW", " BW", " BW", " BW", " BW", 
                                 " BW", " BW", " BW", " BW", " BW", " BW", " F", 
                                 " F", " F", " F", " F", " F", " F", " F", 
                                 " F", " F", " F", " F", " F", " F", " F", 
                                 " F", " F", " F", " F", " F", " F", " F", 
                                 " F", " F", " F", " F", " F", " F", " F", 
                                 " F", " F", " F", " F", " F", " F", " F", 
                                 " F", " F", " F", " F", " F", " F", " F", 
                                 " F", " F", " F", " F", " F", " F", " F", 
                                 " F", " F", " F", " F", " F", " F", " F", 
                                 " F", " F", " F", " F", " F", " F", " F", 
                                 " F", " F", " F", " F", " F", " F", " F", 
                                 " F", " F", " F", " F", " F", " F", " F", 
                                 " F", " F", " F", " F", " F", " F", " F", 
                                 " F", " F", " F", " F", " F", " F", " F", 
                                 " F", " F", " F", " F", " F", " F", " F", 
                                 " F", " F", " F", " F", " F", " F", " F", 
                                 " F"), Tipo = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
                                      NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
                                      NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
                                      "mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean", 
                                      "mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean", 
                                      "mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean", 
                                      "mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean", 
                                      "mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean", 
                                      "mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean", 
                                      "mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean", 
                                      "mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean", 
                                      "mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean", 
                                      "mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean", 
                                      "mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean", 
                                      "mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean", 
                                      "mean", "mean", "mean", "mean", "mean", "mean", "mean", "mean", 
                                      "mean", "mean", "mean"), Carga = c(NA, NA, NA, NA, NA, NA, NA, 
                                               NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
                                               NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
                                               NA, NA, NA, NA, "0", "0", "0", "0", "0", "0", "0", "0", "0", 
                                               "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
                                               "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", 
                                               "0", "0", "0", "0", "0", "0", "0", "0", "1", "1", "1", "1", "1", 
                                               "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
                                               "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
                                               "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "2", 
                                               "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", 
                                               "2", "2", "2", "2", "2", "2", "2"), values = c("74.7", "76.2", 
                                                          "65.4", "71.84", "67.17", "96.58", "70.7", "77.7", "89.8", "88.6", 
                                                          "63.1", "71.5", "83", "73.2", "77.1", "64.7", "84", "81.2", "82.2", 
                                                          "66.7", "71.4", "71.3", "80.4", "78.9", "75.7", "67.9", "64.1", 
                                                          "60", "54.5", "56.5", "52.4", "59.3", "61", "57.3", "68.5", "58.5", 
                                                          "55.5", "55.079", "48.4", "48.794", "61.7", "58", "64.7", "1312.09533657453", 
                                                          "1691.25727722881", "1131.86788952367", "1494.66279842339", "1232.56068172302", 
                                                          "1827.87559009924", "1282.42018406792", "1465.56079375796", "1581.28807857878", 
                                                          "1673.96182165306", "1314.35374106641", "1586.45141535965", "1570.18898305517", 
                                                          "1372.84912895666", "1615.94419678125", "1309.57669335472", "1626.22104289004", 
                                                          "1480.26906251325", "1737.07086475472", "1316.6261165214", "1368.79458398932", 
                                                          "1348.41575288542", "1683.94415136905", "1474.43089428125", "1541.4570629777", 
                                                          "1333.24703715709", "1284.98260255709", "1048.32011415313", "934.480054633987", 
                                                          "1066.16373983674", "911.71102812324", "1116.02779080989", "1126.46371736842", 
                                                          "977.916193547619", "1039.18016693521", "1016.3984667193", "893.370504434375", 
                                                          "1009.47201422101", "948.110", "961.9702868125", "1125.32556987059", 
                                                          "986.878399039877", "1113.64043206803", "1521.58022509317", "1761.62067218841", 
                                                          "1325.38433594506", "1622.81655228521", "1400.85321666667", "1799.64154482164", 
                                                          "1343.82095813081", "1618.24917493557", "1660.0867456817", "1694.47769430851", 
                                                          "1447.07188455957", "1619.28832129242", "1583.39755873611", "1412.71179411735", 
                                                          "1670.52630842767", "1373.36011569436", "1796.0219906301", "1550.70345073003", 
                                                          "1941.20465486793", "1428.82104081544", "1503.96316287926", "1560.66326515917", 
                                                          "1731.40432442857", "1621.36211389714", "1718.44889987324", "1468.65214599355", 
                                                          "1515.02128060364", "1157.93570379639", "984.984328977273", "1212.65594433728", 
                                                          "1001.21543062032", "1210.71544248817", "1226.70876967836", "1097.50861899446", 
                                                          "1263.17848468693", "1187.38897800325", "1116.77362367913", "1219.39660357095", 
                                                          "1028.75497799678", "926.838960533654", "1366.74037895963", "1133.19230608955", 
                                                          "1179.32466002153", "1559.20452192112", "1791.517397003", "1381.92475858531", 
                                                          "1734.87916176333", "1478.51083920397", "1848.43171284849", "1451.25164386096", 
                                                          "1721.49530069948", "1766.61929495782", "1813.00316169543", "1561.54583847315", 
                                                          "1806.08605824014", "1731.88125086301", "1516.68170847381", "1774.30223468678", 
                                                          "1515.66052619714", "1823.25305390741", "1687.73520039718", "1991.1911287645", 
                                                          "1443.54486916754", "1531.79667228499")), .Names = c("GENDER", 
                                                                        "Time", "Var", "Tipo", "Carga", "values"), row.names = c(NA, 
                                                                                      -150L), class = c("tbl_df", "tbl", "data.frame")) 
+1

Haben Sie bemerkt, wie die Var Werte in Ihr dput() hat eine Menge, wenn Leerzeichen vor ihnen stehen? Wie genau haben Sie Ihre Daten so importiert, dass sie so importiert wurden? Das scheint die Ursache Ihres Problems zu sein. – MrFlick

+0

Gerade bemerkt, dass diese Leerzeichen in den Spaltennamen zuvor Daten importieren waren. Danke trotzdem – AJMA

Antwort

2

Das ist, weil die Var Werte hat Räume in ihnen:

df$Var[1] 
[1] " BW" 

Sie können entweder Konto für die im Filter:

filter(df, Time == "PRE2" & Var == " BW") 

Oder schneiden Sie die Leerzeichen aus der Variablen selbst (und alle anderen, nur um sicher zu sein):

library(dplyr) 

df %>% 
    mutate_if(is.character, trimws) %>% 
    filter(Time == "PRE2" & Var == "BW") 
#> # A tibble: 43 x 6 
#> GENDER Time Var Tipo Carga values 
#>  <dbl> <chr> <chr> <chr> <chr> <chr> 
#> 1  1 PRE2 BW <NA> <NA> 74.7 
#> 2  1 PRE2 BW <NA> <NA> 76.2 
#> 3  1 PRE2 BW <NA> <NA> 65.4 
#> 4  1 PRE2 BW <NA> <NA> 71.84 
#> 5  1 PRE2 BW <NA> <NA> 67.17 
#> 6  1 PRE2 BW <NA> <NA> 96.58 
#> 7  1 PRE2 BW <NA> <NA> 70.7 
#> 8  1 PRE2 BW <NA> <NA> 77.7 
#> 9  1 PRE2 BW <NA> <NA> 89.8 
#> 10  1 PRE2 BW <NA> <NA> 88.6 
#> # ... with 33 more rows 
Verwandte Themen