使用过滤器

时间:2017-07-10 14:27:46

标签: r dataframe filter dplyr tidyverse

给定数据框df,为什么我无法过滤其中一列?当我按任何列过滤时,一切正常,但是当过滤变量Var时,将返回0个观察值。

我犯了什么错吗?

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

以下内容未发现任何意见:

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

数据框示例:

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.110012399141", "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 个答案:

答案 0 :(得分:2)

那是因为Var值中包含空格:

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

您可以在过滤器中考虑到这一点:

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

或者修改变量本身的空格(以及所有其他的只是为了安全):

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