给定数据框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"))
答案 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