如何在R中创建自定义过滤器功能

参加会议

我需要过滤位于预定义区域内部或外部的坐标数据。我希望编写一个自定义函数来加快该过程。可以像这样在管道内插入的东西:

df %>% 
  filter(group == "A",
         outside_area(x_coord,y_coord))

我不知道这在技术上是否合法,但想法是可以在dplyr管道中的某个地方调用它

这是使情况变得更加清楚的上下文。

# data
set.seed(123)
list <- c("A","B","C")
df <- tibble (group = sample(list, 500, replace=TRUE),
              x = runif(500,0,105), 
              y = runif(500,0,68))

# plot all the data points
df %>% ggplot(aes(x=x,y=y)) +
  geom_point()

# plot outside an area -- works
df %>% 
  filter(group == "A",
         x <= 88.5 | (x >= 88.5 & y >= 43.2) | (x >= 88.5 & y <= 24.8)) %>% 
  ggplot(aes (x=x, y=y)) +
  geom_point() +
  xlim(0,105) +
  ylim(0,69)

因此该功能将合并

x <= 88.5 | (x >= 88.5 & y >= 43.2) | (x >= 88.5 & y <= 24.8)

谢谢你的帮助

阿克伦

我们可以创建一个函数为

outside_area <- function(dat, col1, col2) { 
     dat[[col1]]<= 88.5 | (dat[[col1]] >= 88.5 & dat[[col2]] >= 43.2) | (dat[[col1]] >= 88.5 & dat[[col2]] <= 24.8)
 }

df %>% 
    filter(group == "A", outside_area(., 'x', 'y'))

-输出

# A tibble: 164 x 3
#   group      x      y
#   <chr>  <dbl>  <dbl>
# 1 A      74.8  16.4  
# 2 A      98.2  47.0  
# 3 A      18.2  66.1  
# 4 A       9.06 44.1  
# 5 A      29.7  62.3  
# 6 A      44.1  14.7  
# 7 A      61.7  37.3  
# 8 A      77.0   0.169
# 9 A     100.   54.4  
#10 A      17.9  53.6  
# … with 154 more rows

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Spring Security 中创建自定义身份验证过滤器?

如何在Spring Cloud中创建自定义Zuul过滤器

如何在Angularjs的单个模块中创建多个自定义过滤器

如何在自定义 ListView 上创建 SearchView/过滤器并使用 EditText 在底层 ArrayList 中添加项目?

如何在视图Drupal 7中添加创建我们的自定义过滤器

如何在Angular 1.3.6上创建自定义过滤器以搜索嵌套数组?

如何在jersey 1.11过滤器中添加自定义响应和中止请求

如何在交叉过滤器组中具有自定义的reduce函数?

如何在Spring Security 3中添加多个自定义过滤器?

如何在Polymer.dart中的自定义元素中注册PolymerExpression过滤器?

如何在Google图表中自定义类别过滤器

Django - 如何在自定义过滤器中向 queryset.filter 添加“或”条件

如何在Polymer 1.7.x中实现自定义过滤器

如何在 Control-M 中列出所有保存的自定义过滤器?

控制器性能比较中的自定义过滤器与过滤器功能

AngularJS自定义过滤器功能

使用TypeScript创建自定义Angular过滤器

创建自定义的Zuul过滤器

创建实际排序的 AngularJS 自定义过滤器

如何为ng-repeat指定自定义过滤器功能?

如何通过自定义过滤器功能扩展d3.js选择?

如何基于Angular js中的两个自定义过滤器过滤数据

如何在Linux中查看日志文件并在查看时应用自定义过滤器?

如何在自定义DirectShow过滤器中以秒为单位获取正确的帧时间?

如何在CKAN的Web UI中添加自定义数据集构面/ solr过滤器?

如何在MongoDB中基于日期过滤器(周,月和自定义日期)获取文档?

如何创建Spring Security的过滤器自定义全局异常处理?

如何使用新函数创建自定义链式过滤器方法

在Excel SQL连接中创建自定义“ WHERE”过滤器