r - 来自迭代过滤的子集(列的级别)
问题描述
我正在寻找一种通过在列上应用不同条件来过滤不同子集中的数据框的方法。并创建新的数据框
换句话说,我正在寻找能够做到这一点的功能
require(dplyr)
df #dataframe
dfa <- df %>% filter(., group = "a") #the variable 'group' with the label 'a
dfb <- df %>% filter(., group = "b") #the variable 'group' with the label 'b'
dfc <- df %>% filter(., group = "c") #the variable 'group' with the label 'c'
#ect...
我的想法是提取这样的水平
lev <- levels(df$group)
然后使用一个lapply
函数对每个级别进行迭代。但是我遇到了设置问题。而且我不知道如何从迭代过程中生成新的数据帧......
编辑
有一个数据框示例
df <- structure(list(group = structure(c(1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("1", "2"), class = "factor"),
name = structure(c(1L, 2L, 2L, 3L, 1L, 4L, 3L, 4L, 1L, 1L,
3L, 1L, 3L, 2L, 1L, 2L, 4L, 3L, 2L, 1L, 2L, 3L, 4L, 1L, 1L,
3L, 2L, 1L, 2L, 3L, 3L, 2L, 4L, 2L, 3L, 3L, 3L, 2L, 2L, 2L,
1L, 2L, 1L, 3L, 2L, 4L, 4L, 2L, 1L, 2L, 2L, 1L, 3L, 1L, 2L,
1L, 2L, 2L, 3L, 3L, 1L, 2L, 1L, 2L, 2L, 4L, 1L, 3L, 3L, 2L,
3L, 3L, 3L, 2L, 1L, 2L, 1L, 4L, 3L, 2L, 4L, 4L, 1L, 1L, 2L,
3L, 2L, 2L, 2L, 3L, 4L, 3L, 2L, 4L, 3L, 3L, 3L, 2L, 3L, 1L,
1L, 3L, 1L, 2L, 4L, 1L, 2L, 1L, 1L, 3L, 2L, 2L, 2L, 3L, 3L,
3L, 1L, 4L, 4L, 2L, 3L, 4L, 3L, 3L, 1L, 3L, 1L, 2L, 4L, 4L,
4L, 4L, 1L, 4L, 3L, 4L, 2L, 2L, 3L, 4L, 4L, 3L, 4L, 4L, 1L,
1L, 1L, 3L, 3L, 3L, 3L, 2L, 1L, 3L, 2L, 2L, 3L, 1L, 3L, 4L,
4L, 3L, 4L, 1L, 4L, 2L, 2L, 1L, 3L, 3L, 1L, 2L, 3L, 3L, 2L,
2L, 3L, 2L, 4L, 3L, 2L, 4L, 3L, 2L, 3L, 1L, 4L, 1L, 2L, 3L,
2L, 4L, 4L, 4L, 3L, 1L, 3L, 4L, 4L, 3L, 1L, 4L, 4L, 2L, 3L,
4L, 2L, 3L, 4L, 4L, 2L, 3L, 4L, 1L, 2L, 3L, 2L, 4L, 2L, 4L,
3L, 4L, 2L, 3L, 3L, 2L, 3L, 3L, 1L, 4L, 4L, 3L, 2L, 3L, 2L,
2L, 4L, 3L, 4L, 1L, 2L, 1L, 1L, 4L, 2L, 1L, 1L, 3L, 2L, 4L,
1L, 3L, 1L, 4L, 3L, 2L, 4L, 2L, 2L, 4L, 3L, 2L, 1L, 1L, 3L,
1L, 1L, 4L, 3L, 4L, 1L, 4L, 3L, 1L, 4L, 3L, 4L, 4L, 2L, 4L,
1L, 4L, 1L, 4L, 2L, 4L, 2L, 4L, 3L, 3L, 4L, 1L, 1L, 4L, 1L,
4L, 1L, 1L, 4L, 2L), .Label = c("a", "b",
"c", "d"), class = "factor"), value = c(30.868878,
0.062792, 0.064722, 61.76918, 30.66711, 2.3871e-05, 61.54933,
3.3162e-08, 29.943615, 29.14588, 62.29323, 30.698678, 62.1702,
0.06528, 28.045121, 0.056081, 3.4555e-05, 67.1306, 0.064405,
30.311288, 0.056603, 96.05593, 5.51e-05, 30.366509, 30.857624,
67.12948, 0.06739, 30.090438, 0.050491, 62.18732, 67.2805,
0.065279, 4.4343e-05, 0.032346, 60.69389, 63.36837, 65.74601,
0.33342, 0.054247, 0.077428, 30.882144, 0.045052, 30.306097,
65.9595, 0.041635, -2.705e-06, 3.8342e-05, 0.061501, 29.920227,
0.0379, 0.040964, 30.863306, 67.52386, 30.156661, 0.057475,
30.867581, 0.048172, 0.03641, 66.9387, 67.41591, 30.652644,
0.069988, 30.727157, 0.059174, 0.051819, 6.0334, 28.61209,
63.60349, 62.52879, 0.042666, 60.55028, 62.85379, 74.62217,
0.066198, 27.987038, 0.048742, 30.05475, 3.2355e-05, 60.8441,
0.055797, 4.3442e-05, 5.5346e-05, 30.056956, 30.676426, 0.035604,
68.52414, 0.057717, 0.09971, 0.08597, 61.83881, 1.5293e-05,
64.70352, 0.05464, 7.355e-05, 65.3831, 61.33682, 72.37654,
0.058391, 66.69953, 28.394395, 30.243572, 72.60976, 28.702126,
0.052706, 9.4268e-05, 30.69675, 0.042419, 30.735693, 29.437261,
63.00787, 0.045357, 1.5938, 0.0595, 65.15357, 61.27723, 65.263,
28.597913, 8.5219e-05, 5.6076e-05, 0.061616, 65.16801, -4.676e-06,
62.87619, 118.19605, 31.237558, 71.39104, 30.896975, 0.047113,
9.6642e-05, 4.4772e-05, 2.7448e-05, 2.4296e-05, 28.773587,
-7.32e-07, 62.65871, 4.345e-05, 0.33907, 0.04343, 113.06933,
9.2574e-06, 4.4781e-05, 61.83328, 5.324e-05, 7.7977e-05,
30.898415, 30.620734, 28.790323, 61.65496, 66.5346, 61.28427,
71.28221, 0.056823, 30.765944, 91.25581, 0.054061, 0.051203,
61.76252, 30.83635, 62.37974, 5.0292e-05, 2.4479e-05, 67.12157,
9.5559e-05, 30.009091, 3.0644e-06, 0.033829, 0.041163, 30.848661,
65.79429, 67.46681, 30.785285, 0.15129, 70.18517, 64.23277,
0.088034, 0.052606, 61.58522, 0.14265, 1.1295e-05, 61.46163,
0.29846, 2.6735e-05, 66.63594, 0.059632, 116.70889, 30.745654,
1.3743e-05, 29.345573, 0.065551, 60.71106, 0.047953, 8.7875e-06,
7.3588e-05, 4.3058e-05, 67.33211, 29.662684, 64.65532, 6.6811e-05,
-9.957e-07, 66.13292, 30.595709, 3.4998e-05, 0.00011454,
0.048417, 60.53301, 1.3004e-05, 0.068605, 65.22992, 2.8757e-06,
2.4577e-05, 0.04427, 62.16205, 4.3647e-05, 29.97387, 0.042776,
77.6753, 0.048735, 0.13577, 0.036806, 6.9006e-05, 84.94532,
9.7338e-05, 1.3316, 68.88738, 115.99801, 0.05736, 60.69266,
67.15351, 30.156764, 5.3195e-05, 3.4649, 79.33051, 0.06558,
69.3476, 0.085893, 0.058569, 3.8985e-05, 64.3347, 4.2267e-05,
29.406443, 0.64823, 30.714088, 30.854511, 5.1728e-05, 0.036175,
29.618613, 30.753743, 61.61991, 0.058629, 1.1714e-05, 29.226482,
68.83065, 30.899018, 6.1703e-05, 66.36974, 0.065556, 2.5469e-05,
0.067354, 4.1394, 2.7652e-05, 114.65137, 0.055644, 29.133173,
30.593966, 65.28648, 29.189217, 29.779958, 33.28, 61.27462,
4.0703e-05, 28.474595, 6.0563e-06, 65.58681, 27.752404, 7.3361e-05,
65.78799, 0.024518, -1.355e-05, 0.046811, 8.2334e-05, 29.919622,
1.3879e-05, 30.358172, -1.022e-05, 0.034263, 5.5449e-05,
0.040798, 8.2063e-05, 61.47507, 61.85918, 4.4857e-05, 30.592282,
30.562771, 0.00010078, 30.602541, 1.2156e-06, 28.494021,
30.2751, 4.6385e-05, 0.055263)), row.names = c(NA, -300L), groups = structure(list(
group = structure(1L, .Label = c("1", "2"), class = "factor"),
.rows = structure(list(1:300), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), row.names = c(NA, -1L), class = c("tbl_df",
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"))
解决方案
推荐阅读
- c++ - 有符号-无符号加法行为异常
- birt - 如何在 birt 报告中添加依赖于名称的图像?
- python - 通过句柄在画布中查找小部件
- maven - Maven:如何在构建和发布期间跳过安装/部署快速入门或示例模块?
- javascript - Vuejs fusioncharts 具有完全透明的背景
- angularjs - 为什么 $invalid、$valid、$dirty 在 Visual Studio 的 AngularJS 项目中不起作用?
- python-jedi - jedi infer() 不适用于我的基于 AWS S3 的自定义 Python 导入器
- flutter - 如何在不更新的情况下在已发布的 Flutter 应用中添加新项目
- c++ - 如何使用 libclang 处理 if init 语句(c++17)
- django - 使用 django tables2 和 django_filters 时如何过滤连接的值