r - 用 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"))
推荐阅读
- excel - 使用按钮从文件中选择图片并将其插入到 excel 当前单元格中,并使用 vba 调整单元格大小以适合图片
- amazon-web-services - AppSync 关系
- css - 我如何将 Angular 材料复选框与 div 内不同的文本大小垂直对齐并将它们保持在 div 的中间
- c++ - 有序类/结构设计模式
- java - 如何在弹性搜索中术语查询嵌套的 json 对象/字段?
- xaml - 无需浏览即可从完整图库路径查看特定图像
- c++ - 如何制作电路板一维c ++
- java - 如何获取同步到 Azure AD 作为 On-Premises-Domain-Name 的 Windows 域 FQDN?
- google-apps-script - 如何将列向前移动然后再向后移动?
- android - Android覆盖文件的味道