【发布时间】:2018-10-09 14:52:25
【问题描述】:
我有一个像这样的数据框:
df
A B C D E F
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 24. 6. 16. 5. 1.20 6.
2 21. 2. 19. 2. 1.09 2.
3 12. 2. 12. 79. 0.860 2.
4 39. 7. 39. 39. 1.90 7.
5 51. 1. 82. 27. 2.30 1.
6 24. 9. 24. 40. 1.60 9.
7 48. 1. 32. 5. 1.60 1.
8 44. 1. 44. 12. 1.70 1.
9 14. 1. 18. 6. 0.880 1.
10 34. 2. 51. 5. 2.70 2.
# ... with 4,688 more rows
我想根据列表过滤这个数据框,这样对于 df 的每一列,最小值和最大值将根据列表 Neighb 的最小值和最大值:
[[1]]
[1] 15.7 15.9 16.0 16.1 16.2
[[2]]
[1] 0 1 2 3 4
[[3]]
[1] 15.0 15.3 16.0 16.3 16.5
[[4]]
[1] 3 4 5 6 7
[[5]]
[1] 1.08 1.09 1.10 1.11 1.12
[[6]]
[1] 0 1 2 3 4
有没有办法使用 dplyr/base R 有效地做到这一点?到目前为止,我使用循环并一次过滤 df 的每一列
【问题讨论】:
-
让我直说。 df$A 应该在列表 Neighb[[1]] 上进行过滤,以便 df$A 中的所有过滤值都在 15.7 和 16.2 之间。 df$B 按列表 Neighb[[2]] 等?
-
是的,没错