首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在dplyr函数的左侧执行NSE?

在dplyr中,NSE(Non-Standard Evaluation)是指在函数调用中使用非标准评估方法。在dplyr的语法中,使用NSE可以让我们在函数的左侧执行表达式。

要在dplyr函数的左侧执行NSE,我们可以使用dplyr提供的“!!”运算符或者使用“enquo()”函数和“!!”运算符的组合。

下面是两种方法的示例:

方法1:使用“!!”运算符

代码语言:txt
复制
library(dplyr)

column_name <- "Sepal.Length"
filter_expr <- quo(Species == "setosa")
iris %>% filter(!!filter_expr) %>% select(!!sym(column_name))

在这个示例中,我们使用quo()函数将表达式“Species == "setosa"”转换为一个语法树对象。然后,我们使用“!!”运算符在filter()函数中执行这个语法树对象,从而在函数的左侧执行NSE。

方法2:使用“enquo()”函数和“!!”运算符的组合

代码语言:txt
复制
library(dplyr)

column_name <- "Sepal.Length"
filter_expr <- enquo(Species == "setosa")
iris %>% filter(!!filter_expr) %>% select(!!sym(column_name))

在这个示例中,我们使用enquo()函数将表达式“Species == "setosa"”转换为一个语法树对象。然后,我们使用“!!”运算符在filter()函数中执行这个语法树对象,从而在函数的左侧执行NSE。

这两种方法都可以达到在dplyr函数的左侧执行NSE的效果。

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

R tips:dplyr编程

dplyr函数由于使用tidy evaluation(R中一种非标准执行NSE)实现方式)方法,可以使得其具有更好易用性:变量不需要绝对引用和引号包裹。...根据使用NSE类别不同,dplyr函数可以分为两类: data masking:arrange(), count(), filter(), group_by(), mutate(), summarise...根据所用NSE类别,需要区别对待dplyr函数编程。 Data masking 如果想要操作数据变量名称来源于环境变量,那么使用特殊指代词.data来完成。...如果想要操作数据变量来源于函数参数(指一个环境变量上存在一个promise),那么使用{{}}包裹。 一个函数在调用时,其参数存在一个promise。...如果想要操作数据变量来源于函数参数,那么使用{{}}包裹。

1.2K30
  • 「R」dplyr 编程

    来源:vignettes/programming.Rmd[2] 大多数 dplyr 函数使用非标准计算(NSE)。这是一个术语——意味着它们不遵循通常计算规则。...不幸是,这些好处不是免费。有两个主要缺点: 大多数dplyr参数不是透明。这意味着你不能用一个看似等价对象代替一个在别处定义值。...动词计算参数来创建函数(这一点很重要,如果你使用 dplyr 进行数据框操作,会发现很好用,但是如果你用它创建函数,你会发现它总是以一种无法被理解形式报错)。...[x == y, ] 这在交互式工作时非常有用(因为它可以节省打字时间和减少打字量,快速发现问题),但使创建函数比你想要更不可预测。...这篇文章有两个目标: 演示如何使用dplyrpronouns和quasiquotation编写可靠函数,以减少数据分析代码中重复。

    1.3K20

    工具| 诸神之眼nmap定制化之并发处理

    0x03 NSE并发执行 在使用NSE处理并发执行时,并不需要考虑资源保护,因为Nmap是单线程。但是当在处理大规模脚本实例时,就需要考虑网络带宽以及socket限制等问题。...在NSE中通过stdNSE库文件函数stdNSE.new_thread()来支持NSE线程创建。...建立一个线程: stdNSE.new_thread(func,arg1,arg2,arg3,...) func 就是我们要在线程中执行函数,arg1,arg2...就是这个函数里要传递进去参数。...1.当一个线程调用wait函数之后,可以加入到这个队列中; 2.当一个线程调用signal函数之后,可以从这个队列中释放出来,然后恢复执行; 3.当一个线程调用broadcast函数之后,可以恢复所有线程执行...0x04 小结 本期主要介绍nmap中并发执行机制,包括如何在lua和NSE去创建线程操作。在nmap脚本库当中,很多爆破脚本,或者是服务枚举,目录遍历等脚本都较为经常使用到线程并发处理机制。

    2.9K50

    Kali Linux 网络扫描秘籍 第五章 漏洞扫描

    一些漏洞扫描程序会将未修补系统识别为漏洞,但漏洞不能被实际利用。或者,其他漏洞扫描程序(NSE脚本)将评估所有所需条件,以确定系统是否易受攻击。...Name列标识每个可配置变量名称。 Current Setting列列出任何给定变量现有配置。 Required列标识任何给定变量是否需要值。 Description列描述每个变量函数。...可以在屏幕左侧访问四个不同菜单,这包括: General Settings(常规设置):此菜单提供基本配置,定义如何执行发现和服务枚举详细端口扫描选项,以及定义有关速度,节流,并行性等策略性能选项...要执行第一次扫描,您需要单击屏幕左侧蓝色New Scan按钮,像这样: 这需要一些基本配置信息。系统将提示你输入一系列字段,包括Name, Policy, Folder, 和 Targets。...准备 要使用HTTP交互验证漏洞,你需要一个运行拥有远程代码执行漏洞软件系统。 此外,本节需要使用文本编辑器(VIM或Nano)将脚本写入文件系统。

    5.5K30

    非线性回归nls探索分析河流阶段性流量数据和评级曲线、流量预测可视化

    对于广义加性模型,因变量取决于应用于每个预测变量平滑函数总和。此外,广义加性模型可以拟合具有非正态分布误差分布因变量。...::\` 指定要使用重命名函数,以防万一 dplyr::rename(Sam) ggplot(iqdf)+ geom_point(aes(Dme, Flow), alpha = 0.2)...NSE 值范围从 −∞ 到 1,其中 1 表示完美的预测性能。NSE 为零表示模型具有与数据集均值相同预测性能。...站点 16397 探索性分析表明,在该站点使用幂函数(公式 (1)")) 因为在水文过程图中没有观察到不稳定流动条件。评级曲线预测导致 NSE 大于 0.95,表明非常适合(表 2)。...hodf %>% dplyr::select%>% group_split(站点) %>% bind_rows() ## 制作模型数据框,预测数据,然后映射预测函数,并取消嵌套数据框。

    1.4K10

    《高效R语言编程》6--高效数据木匠

    使用变量名非标准化求值更高效,见R语言 dplyr传递参数_自由 平等~忠诚 奉献-CSDN博客[2]。只是函数名多了个下划线那么简单吗?...使用dplyr高效处理数据 这个包名意思是数据框钳,相比基础R优点是运行更快、与整洁数据和数据库配合好。函数部分灵感来自SQL。 ?...非标准计算 代码中没有引号包裹原始名字,这种方式叫做非标准计算(NSE),高效交互使用函数,减少键盘输入,允许Rstudio中自动完成。还是函数名多个_。...RODBC是一个资深包,提供R与SQL server接口。DBI包提供了通用接口与驱动程序类集,RSQLITE,是访问数据库统一框架,允许其他驱动程序以模块包添加。...数据库与dplyr 必须使用src_*()函数创建一个数据源。# 使用data.table()处理数据 是dplyr替代,两个哪个好存在争议,最好学一个一直坚持下去。

    1.9K20

    安全扫描工具​Nmap引擎理解文档

    NSE脚本引擎:NSE是Nmap最强大最灵活特性之一,可以用于增强主机发现、端口扫描、版本侦测、操作系统侦测等功能,还可以用来扩展高级功能web扫描、漏洞发现。漏洞利用等等。...脚本分类 NSE中提供Lua脚本分别为不同类别,根据官方网站,目前有14中类别: auth:负责处理鉴权证书(绕开鉴权)脚本 broadcast:在局域网内探查更多服务开启状况,dhcp/dns...nmap_main()函数中,若判断需要启动脚本引擎,这首先需要调用open_nse()函数进行NSE环境准备,首先要创建luaState(管理Lua解释器执行全局变量),然后调用init_main...进入init_main()函数,首先加载Lua标准版库与Nmap扩展库,随后准备参数环境,然后加载并执行nse_main.lua文件。...nse_main.lua脚本为后续脚本执行准备Lua环境,加载用户选择需要调用脚本(例如,用户–script discovery,那么会将该类别中所有的脚本加载进来),返回一个main()函数对象给

    1.9K70

    【教你R语言】转换长宽格式表落地方案

    前言 做数据分析以及制作表格时候,会遇到长宽格式数据之间相互转换问题,之前介绍了如果在Hive是使用sql语句实现,现介绍一下如何在R语言中实现长宽格式数据相互转换。...需求实现 R语言中有两个包中函数可以实现长宽格式数据相关转换: ?...= c("2018/1/3", "2018/5/5", "2018/5/4")) reshape2包实现长宽数据转换 ##长格式数据转换成宽格式数据library(reshape2)library(dplyr...) dcast( data = data, user_no ~ message ##左侧是要保留字段,右侧是要分割字段,可以理解为key ##这样汇总就是value值了) ##宽格式数据转换成长格式数据...= "detail" #理解为value) %>% arrange(user_no) tidyr包实现长宽数据转换 ##长格式数据转换成宽格式数据library(tidyr)library(dplyr

    2K30

    「R」tidyverse 中公式函数

    本文写作由来是知识星球一个朋友对如何在 tidyverse 系列包中使用公式函数(单侧公式)不太熟悉,所以通过本文分享一下我心得。...构造数据 本文为了聚焦于公式函数本身用法,我构造示例数据会非常简单。...公式左侧内容对于构造匿名函数没有用,所以这里都是用单侧公式。 这段文档不仅告诉了我们如何通过公式构造匿名函数,还提供了一些快捷方式说明。 下面我们通过一些例子来进行讲解。...公式函数用法 核心是什么 公式函数优点在于提供了一种构造匿名函数简洁方式。而核心在于在同一行代码表示如何使用输入构造出输出。...这里值得注意是,当匿名函数只有一个参数时,我们用 .x 表示函数输入参数。如果进行拓展,2 个参数时使用 .x 与 .y,3 个参数时使用 ..1, ..2, ..3 等。

    4K20

    「R」dplyr 列式计算

    ❝在近期使用 「dplyr」 进行多列选择性操作, mutate_at() 时,发现文档提示一系列dplyr函数变体已经过期,看来后续要退休了,使用 across() 是它们统一替代品,所以最近抽时间针对性学习和翻译下...原文来自 [dplyr 文档](Column-wise operations • dplyr (tidyverse.org "dplyr 文档")) - 2021-01❞ 同时对数据框多列执行相同函数操作经常有用...下面是联合 across() 和它最喜欢动词函数 summarise()一些例子。但你也可以联合 across() 和任意其他dplyr」 动词函数,我们后面会提及。...你可以通过对第二个参数传入一个函数(包括 lambda 函数命名列表来对每个变量同时执行多个函数操作。...这使 「dplyr」 更容易使用(因为需要记住函数更少),也使我们更容易实现新动词(因为我们只需要实现一个函数,而不是四个)。

    2.4K10

    Kali Linux 网络扫描秘籍 第八章 自动化 Kali 工具

    因为grep函数输出包括多条信息,所以输出通过管道传递到cut函数,来提取 IP 地址,然后将其输出到终端。...for循环用于遍历通过grep函数获取 IP 地址列表。 从grep函数输出 IP 地址列表对应在 TCP 端口 445 上运行服务所有系统。...然后对这些 IP 地址中每一个执行 Nmap NSE 脚本。 通过仅在先前已标识为在 TCP 445 上运行服务系统上运行此脚本,执行 NSE 扫描所需时间大大减少。...通过独立运行该函数,可以看到它只提取对应运行 SMB 服务主机 IP 地址列表。 然后,for循环遍历这些IP地址,并对每个 IP 地址执行 NSE 脚本。...可由 NSE 脚本测试漏洞数量明显小于可通过专用漏洞扫描程序( Nessus)评估漏洞数量。

    5.2K20

    nmap插件编写

    3、rule: 脚本触发规则(一般是一个lua函数,返回值只有true和false),触发脚本执行条件会在rule字段中定义。...Nmap使用规则是一个lua函数,用来决定是否执行脚本action,会返回true或者false。如果返回值为true的话会执行脚本action函数。...用来决定规则真假通常是基于规则类型以及传递给它主机和端口信息。 4、action: 脚本具体执行内容。rule触发规则为真时执行action定义函数。...hostrule和portrule对应函数返回true时,都会执行一次action函数。...nseNSE库文件实现了代码分离和重构,有助于脚本开发,其存放在nselib文件夹中。 ? 下面编写一个简单库文件。 ? 然后调用 ? 常用函数可以使用local关键字。 运行 ?

    92020

    【R语言】基础知识|dplyr管道函数处理表格

    01 select()变形函数 dplyr安装就不展示了,dplyr包是内含多函数且功能强大数据处理包。...03 mutate( ) mutate( )函数用来创建新数据框,创建新1列为销售额。 ?...04 arrange( ) arrange( ) 函数可用于创建一个新数据框,这个数据框可以按照1个或多个变量进行排序。 desc( ) 函数表示降序排列。让上述表格按照金额和单价进行降序排列。...06 %>%管道操作符 %>%管道操作符,这个是我在dplyr包中最喜欢一个操作符了,它运用起来特别方便,能够连接前后两个步骤,实现嵌套使用简化代码同时还能避免存储多余中间值而节省内存空间。...它作用是把符号左侧返回结果,作为符号右侧调用函数第1个参数。实际上,x %>% f(...)相当于于f(x, ...)。 ?

    1.8K31

    R语言数据处理:飞机航行距离与到达延误时间有什么关系??

    包,该软件包中飞机航班数据将用于本文中dplyr包相关函数演示。...2.3 删除缺失数据 我们采用dplyr包中filter()函数,进行缺失数据删除。脚本输入代码: myFlights <- filter(myFlights,!...3.1 数据分组 dplyr包里分组是由group_by()函数实现,脚本输入代码: by_dest <- group_by(myFlights, destination) class(by_dest...3.2 应用函数及组合结果 我们使用dplyr包中summarize()函数,进行数据统计指标的获取及组合。计算出不同目的地平行航行距离以及平均延误时间。...(%>%是最常用一个操作符,就是把左侧准备数据或表达式,传递给右侧函数调用或表达式进行运行,可以连续操作就像一个链条一样。)

    3.1K40
    领券