繁体   English   中英

使用 R 中列中存在的值过滤列

[英]Filtering a column with a value present in the column in R

这个 Fitbit 数据集https://www.kaggle.com/arashnic/fitbit链接提供,我试图通过列中存在的值过滤 Dailyactivitiesmerged.csv 数据集中的 LoggedActivities 列,但在应用过滤器后,它给了我一个小标题有 0 个观察值,但是当我用 0 值对其进行过滤时,该值也存在于数据集中,它返回所有值为 0 的值,并给出一个包含 908 个观察值的小标题。 我的问题是为什么不使用 0 以外的值进行过滤?

我下载了这个数据集并使用readr::read_csv导入它。 我的猜测:你试图像这样过滤:

library(dplyr)

df %>%
  filter(LoggedActivitiesDistance == 1.96)

因为此数据集中存在1.96 不幸的是,这返回

# A tibble: 0 x 15
# ... with 15 variables: Id <dbl>, ActivityDate <chr>, TotalSteps <dbl>, TotalDistance <dbl>,
#   TrackerDistance <dbl>, LoggedActivitiesDistance <dbl>, VeryActiveDistance <dbl>,
#   ModeratelyActiveDistance <dbl>, LightActiveDistance <dbl>, SedentaryActiveDistance <dbl>,
#   VeryActiveMinutes <dbl>, FairlyActiveMinutes <dbl>, LightlyActiveMinutes <dbl>, SedentaryMinutes <dbl>,
#   Calories <dbl>

实际上1.96不存在于该数据集中,但在控制台视图中,该值显示为1.96 使用

options(pillar.sigfig = 10)

df %>% 
  filter(LoggedActivitiesDistance != 0)

返回

# A tibble: 32 x 15
           Id ActivityDate TotalSteps TotalDistance TrackerDistance LoggedActivitiesDistance VeryActiveDistance
        <dbl> <chr>             <dbl>         <dbl>           <dbl>                    <dbl>              <dbl>
 1 6775888955 4/26/2016          7091   5.269999981     5.269999981              1.959596038        3.480000019
 2 6962181067 4/21/2016         11835   9.710000038     7.880000114              4.081692219        3.990000010
 3 6962181067 4/25/2016         13239   9.270000458     9.079999924              2.785175085        3.019999981
 4 6962181067 5/9/2016          12342   8.720000267     8.680000305              3.167821884        3.900000095
 5 7007744171 4/12/2016         14172  10.28999996      9.479999542              4.869782925        4.5        
 6 7007744171 4/13/2016         12862   9.649999619     8.600000381              4.851306915        4.610000134
 7 7007744171 4/14/2016         11179   8.239999771     7.480000019              3.285414934        2.950000048
 8 7007744171 4/18/2016         14816  10.97999954      9.909999847              4.930550098        3.789999962
 9 7007744171 4/19/2016         14194  10.47999954      9.5                      4.942142010        4.409999847
10 7007744171 4/20/2016         15566  11.31000042     10.40999985               4.924840927        4.789999962
# ... with 22 more rows, and 8 more variables: ModeratelyActiveDistance <dbl>, LightActiveDistance <dbl>,
#   SedentaryActiveDistance <dbl>, VeryActiveMinutes <dbl>, FairlyActiveMinutes <dbl>,
#   LightlyActiveMinutes <dbl>, SedentaryMinutes <dbl>, Calories <dbl>

所以基本上,如果你想过滤这个1.96值,你必须使用一个小的解决方法:

df %>% 
  filter(LoggedActivitiesDistance <= 1.96 & LoggedActivitiesDistance > 1.95)

##数据

structure(list(Id = c(6775888955, 6962181067, 6962181067, 6962181067, 
7007744171, 7007744171, 7007744171, 7007744171, 7007744171, 7007744171, 
7007744171, 7007744171, 7007744171, 7007744171, 7007744171, 7007744171, 
8378563200, 8378563200, 8378563200, 8378563200, 8378563200, 8378563200, 
8378563200, 8378563200, 8378563200, 8378563200, 8378563200, 8378563200, 
8378563200, 8378563200, 8378563200, 8378563200, 1503960366, 1503960366, 
1503960366, 1503960366, 1503960366, 1503960366, 1503960366, 1503960366, 
1503960366, 1503960366), ActivityDate = c("4/26/2016", "4/21/2016", 
"4/25/2016", "5/9/2016", "4/12/2016", "4/13/2016", "4/14/2016", 
"4/18/2016", "4/19/2016", "4/20/2016", "4/25/2016", "4/27/2016", 
"4/29/2016", "5/2/2016", "5/3/2016", "5/5/2016", "4/12/2016", 
"4/13/2016", "4/14/2016", "4/18/2016", "4/19/2016", "4/20/2016", 
"4/21/2016", "4/22/2016", "4/25/2016", "5/2/2016", "5/3/2016", 
"5/5/2016", "5/6/2016", "5/9/2016", "5/10/2016", "5/11/2016", 
"4/12/2016", "4/13/2016", "4/14/2016", "4/15/2016", "4/16/2016", 
"4/17/2016", "4/18/2016", "4/19/2016", "4/20/2016", "4/21/2016"
), TotalSteps = c(7091, 11835, 13239, 12342, 14172, 12862, 11179, 
14816, 14194, 15566, 18229, 13541, 20067, 13041, 14510, 15010, 
7626, 12386, 13318, 13630, 13070, 9388, 15148, 12200, 12405, 
6064, 8712, 8567, 7045, 8382, 6582, 9143, 13162, 10735, 10460, 
9762, 12669, 9705, 13019, 15506, 10544, 9819), TotalDistance = c(5.26999998092651, 
9.71000003814697, 9.27000045776367, 8.72000026702881, 10.289999961853, 
9.64999961853027, 8.23999977111816, 10.9799995422363, 10.4799995422363, 
11.3100004196167, 13.3400001525879, 10.2200002670288, 14.3000001907349, 
9.18000030517578, 10.8699998855591, 11.1000003814697, 6.05000019073486, 
9.81999969482422, 10.5600004196167, 10.8100004196167, 10.3599996566772, 
7.44000005722046, 12.0100002288818, 9.67000007629395, 9.84000015258789, 
4.80999994277954, 6.90999984741211, 6.78999996185303, 5.59000015258789, 
6.65000009536743, 5.21999979019165, 7.25, 8.5, 6.96999979019165, 
6.73999977111816, 6.28000020980835, 8.15999984741211, 6.48000001907349, 
8.59000015258789, 9.88000011444092, 6.67999982833862, 6.34000015258789
), TrackerDistance = c(5.26999998092651, 7.88000011444092, 9.07999992370605, 
8.68000030517578, 9.47999954223633, 8.60000038146973, 7.48000001907349, 
9.90999984741211, 9.5, 10.4099998474121, 12.1999998092651, 9.0600004196167, 
13.4200000762939, 8.72000026702881, 9.71000003814697, 10.039999961853, 
6.05000019073486, 9.81999969482422, 10.5600004196167, 10.8100004196167, 
10.3599996566772, 7.44000005722046, 12.0100002288818, 9.67000007629395, 
9.84000015258789, 4.80999994277954, 6.90999984741211, 6.78999996185303, 
5.59000015258789, 6.65000009536743, 5.21999979019165, 7.25, 8.5, 
6.96999979019165, 6.73999977111816, 6.28000020980835, 8.15999984741211, 
6.48000001907349, 8.59000015258789, 9.88000011444092, 6.67999982833862, 
6.34000015258789), LoggedActivitiesDistance = c(1.95959603786469, 
4.08169221878052, 2.78517508506775, 3.16782188415527, 4.8697829246521, 
4.8513069152832, 3.28541493415833, 4.93055009841919, 4.94214200973511, 
4.92484092712402, 4.86179208755493, 4.88560485839844, 4.91114616394043, 
2.83232593536377, 4.91236782073975, 4.8782320022583, 2.25308108329773, 
2.0921471118927, 2.25308108329773, 2.0921471118927, 2.25308108329773, 
2.0921471118927, 2.25308108329773, 2.0921471118927, 2.0921471118927, 
2.0921471118927, 2.25308108329773, 2.25308108329773, 2.0921471118927, 
2.0921471118927, 2.25308108329773, 2.0921471118927, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0), VeryActiveDistance = c(3.48000001907349, 
3.99000000953674, 3.01999998092651, 3.90000009536743, 4.5, 4.6100001335144, 
2.95000004768372, 3.78999996185303, 4.40999984741211, 4.78999996185303, 
4.30999994277954, 4.26999998092651, 4.30999994277954, 4.6399998664856, 
4.48000001907349, 4.32999992370605, 0.829999983310699, 4.96000003814697, 
5.61999988555908, 5.05000019073486, 5.30000019073486, 2.23000001907349, 
6.90000009536743, 4.90999984741211, 5.05000019073486, 0.629999995231628, 
1.3400000333786, 0.889999985694885, 1.54999995231628, 1.26999998092651, 
0.660000026226044, 1.38999998569489, 1.87999999523163, 1.57000005245209, 
2.44000005722046, 2.14000010490417, 2.71000003814697, 3.19000005722046, 
3.25, 3.52999997138977, 1.96000003814697, 1.3400000333786), ModeratelyActiveDistance = c(0.870000004768372, 
2.09999990463257, 1.67999994754791, 1.17999994754791, 0.379999995231628, 
0.560000002384186, 0.340000003576279, 2.11999988555908, 0.759999990463257, 
0.670000016689301, 1.37000000476837, 0.660000026226044, 2.04999995231628, 
0.699999988079071, 1.01999998092651, 1.28999996185303, 0.709999978542328, 
0.649999976158142, 1.02999997138977, 0.560000002384186, 0.879999995231628, 
0.439999997615814, 0.819999992847443, 0.589999973773956, 0.870000004768372, 
0.170000001788139, 1.05999994277954, 0.159999996423721, 0.25, 
0.660000026226044, 0.639999985694885, 0.589999973773956, 0.550000011920929, 
0.689999997615814, 0.400000005960464, 1.25999999046326, 0.409999996423721, 
0.779999971389771, 0.639999985694885, 1.32000005245209, 0.479999989271164, 
0.349999994039536), LightActiveDistance = c(0.730000019073486, 
3.50999999046326, 4.46000003814697, 3.65000009536743, 5.40999984741211, 
4.48000001907349, 4.96000003814697, 5.05000019073486, 5.30999994277954, 
5.8600001335144, 7.67000007629395, 5.28999996185303, 7.94999980926514, 
3.82999992370605, 5.3600001335144, 5.48000001907349, 4.5, 4.21000003814697, 
3.91000008583069, 5.19999980926514, 4.17999982833862, 4.78000020980835, 
4.28999996185303, 4.17999982833862, 3.92000007629395, 4.01000022888184, 
4.5, 5.73999977111816, 3.77999997138977, 4.71999979019165, 3.92000007629395, 
5.26999998092651, 6.05999994277954, 4.71000003814697, 3.91000008583069, 
2.82999992370605, 5.03999996185303, 2.50999999046326, 4.71000003814697, 
5.03000020980835, 4.23999977111816, 4.65000009536743), SedentaryActiveDistance = c(0, 
0.109999999403954, 0.100000001490116, 0, 0, 0, 0, 0.0199999995529652, 
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), VeryActiveMinutes = c(42, 
53, 35, 43, 53, 56, 34, 48, 53, 60, 51, 50, 55, 64, 58, 53, 65, 
116, 123, 117, 120, 82, 137, 113, 117, 63, 71, 66, 74, 71, 63, 
72, 25, 21, 30, 29, 36, 38, 42, 50, 28, 19), FairlyActiveMinutes = c(30, 
27, 31, 21, 8, 22, 6, 31, 17, 33, 24, 12, 42, 14, 31, 23, 15, 
14, 21, 10, 19, 8, 16, 12, 16, 4, 20, 3, 5, 13, 13, 10, 13, 19, 
11, 34, 10, 20, 16, 31, 12, 8), LightlyActiveMinutes = c(47, 
214, 282, 231, 355, 261, 304, 284, 304, 347, 379, 337, 382, 250, 
330, 317, 156, 169, 174, 174, 154, 169, 145, 159, 141, 142, 195, 
214, 166, 171, 152, 184, 328, 217, 181, 209, 221, 164, 233, 264, 
205, 211), SedentaryMinutes = c(1321, 708, 637, 607, 1024, 1101, 
1096, 1077, 1066, 1000, 986, 1041, 961, 1112, 1021, 1047, 723, 
680, 699, 720, 737, 763, 677, 769, 692, 802, 822, 764, 831, 772, 
840, 763, 728, 776, 1218, 726, 773, 539, 1149, 775, 818, 838), 
    Calories = c(2584, 2179, 2194, 2105, 2937, 2742, 2668, 2832, 
    2812, 3096, 3055, 2830, 3180, 2642, 2976, 2933, 3635, 4079, 
    4163, 4157, 4092, 3787, 4236, 4044, 4005, 3491, 3784, 3783, 
    3644, 3721, 3586, 3788, 1985, 1797, 1776, 1745, 1863, 1728, 
    1921, 2035, 1786, 1775)), class = c("spec_tbl_df", "tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -42L), spec = structure(list(
    cols = list(Id = structure(list(), class = c("collector_double", 
    "collector")), ActivityDate = structure(list(), class = c("collector_character", 
    "collector")), TotalSteps = structure(list(), class = c("collector_double", 
    "collector")), TotalDistance = structure(list(), class = c("collector_double", 
    "collector")), TrackerDistance = structure(list(), class = c("collector_double", 
    "collector")), LoggedActivitiesDistance = structure(list(), class = c("collector_double", 
    "collector")), VeryActiveDistance = structure(list(), class = c("collector_double", 
    "collector")), ModeratelyActiveDistance = structure(list(), class = c("collector_double", 
    "collector")), LightActiveDistance = structure(list(), class = c("collector_double", 
    "collector")), SedentaryActiveDistance = structure(list(), class = c("collector_double", 
    "collector")), VeryActiveMinutes = structure(list(), class = c("collector_double", 
    "collector")), FairlyActiveMinutes = structure(list(), class = c("collector_double", 
    "collector")), LightlyActiveMinutes = structure(list(), class = c("collector_double", 
    "collector")), SedentaryMinutes = structure(list(), class = c("collector_double", 
    "collector")), Calories = structure(list(), class = c("collector_double", 
    "collector"))), default = structure(list(), class = c("collector_guess", 
    "collector")), skip = 1L), class = "col_spec"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM