为什么我可以过滤某些值而不能过滤其他值? (dplyr)

时间:2020-05-19 17:10:52

标签: filter dplyr

我正在尝试使用dplyr进行过滤。我只能过滤4组中的1组,对于其他3组,输出将变为空白。

我有以下数据:

structure(list(Quail = c("28", "28", "28", "28", "29", "29", 
"29", "29", "30", "30", "30", "30", "4", "4", "4", "4", "4", 
"5", "5", "5", "5", "5", "6", "6", "6", "6", "16", "16", "16", 
"16", "17", "17", "17", "17", "17", "18", "18", "18", "18", "52", 
"52", "52", "52", "53", "53", "53", "53", "54", "54", "54", "54"
), day = c(1, 3, 5, 7, 1, 3, 5, 9, 1, 3, 5, 7, 1, 3, 5, 7, 9, 
1, 3, 5, 7, 9, 1, 3, 5, 7, 1, 3, 5, 7, 1, 3, 5, 7, 9, 1, 3, 5, 
7, 1, 3, 5, 7, 1, 3, 5, 7, 1, 3, 5, 7), Group = c(" var", " var", 
" var", " var", " var", " var", " var", " var", " var", " var", 
" var", " var", "varL", "varL", "varL", "varL", "varL", "varL", 
"varL", "varL", "varL", "varL", "varL", "varL", "varL", "varL", 
" varLQ", " varLQ", " varLQ", " varLQ", " varLQ", " varLQ", " varLQ", 
" varLQ", " varLQ", " varLQ", " varLQ", " varLQ", " varLQ", " varQ", 
" varQ", " varQ", " varQ", " varQ", " varQ", " varQ", " varQ", 
" varQ", " varQ", " varQ", " varQ")), row.names = c(NA, -51L), groups = structure(list(
    Quail = c("16", "16", "16", "16", "17", "17", "17", "17", 
    "17", "18", "18", "18", "18", "28", "28", "28", "28", "29", 
    "29", "29", "29", "30", "30", "30", "30", "4", "4", "4", 
    "4", "4", "5", "5", "5", "5", "5", "52", "52", "52", "52", 
    "53", "53", "53", "53", "54", "54", "54", "54", "6", "6", 
    "6", "6"), day = c(1, 3, 5, 7, 1, 3, 5, 7, 9, 1, 3, 5, 7, 
    1, 3, 5, 7, 1, 3, 5, 9, 1, 3, 5, 7, 1, 3, 5, 7, 9, 1, 3, 
    5, 7, 9, 1, 3, 5, 7, 1, 3, 5, 7, 1, 3, 5, 7, 1, 3, 5, 7), 
    Group = c(" varLQ", " varLQ", " varLQ", " varLQ", " varLQ", 
    " varLQ", " varLQ", " varLQ", " varLQ", " varLQ", " varLQ", 
    " varLQ", " varLQ", " var", " var", " var", " var", " var", 
    " var", " var", " var", " var", " var", " var", " var", "varL", 
    "varL", "varL", "varL", "varL", "varL", "varL", "varL", "varL", 
    "varL", " varQ", " varQ", " varQ", " varQ", " varQ", " varQ", 
    " varQ", " varQ", " varQ", " varQ", " varQ", " varQ", "varL", 
    "varL", "varL", "varL"), .rows = list(27L, 28L, 29L, 30L, 
        31L, 32L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 1L, 2L, 
        3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 
        15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 40L, 41L, 42L, 
        43L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 51L, 23L, 24L, 
        25L, 26L)), row.names = c(NA, -51L), class = c("tbl_df", 
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"))

我想按组过滤。如果我喜欢:

DI.pi.equi.extended %>%
  filter(Group == "varL")

工作正常,但是如果我要过滤其他任何组(var,varLQ或varQ),则会返回以下内容:

# A tibble: 0 x 10
# Groups:   Quail, day, Group [0]
# … with 10 variables: Quail <chr>, day <dbl>, Group <chr>,
#   Sample <chr>, n <int>, pi <dbl>, piN <dbl>, piS <dbl>,
#   Equi <dbl>, Norm.pi <dbl>

数据在那里,我只是无法弄清楚出了什么问题。

非常感谢。

0 个答案:

没有答案