问题标签 [non-standard-evaluation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - ggplot中函数内aes(...)中变量的范围
考虑一下ggplot(...)
函数内部的这种使用。
看起来ggplot
无法识别i
函数内部定义的变量,但可以识别i
它是否在全局环境中定义。这是为什么?
请注意,这给出了预期的结果。
r - R函数来安装丢失的包
对于我的一个脚本,我想编写一个 R 函数来检查一个包是否已经安装:如果是这样,它应该使用 library() 将它导入命名空间,否则它应该安装并导入它。
我假设pkgname是一个字符串,并尝试编写如下内容:
如此简单,此功能不起作用。如果我尝试像ensure_library("dplyr")
安装包 dplyr 一样运行它,但它会失败,因为它尝试导入pkgname
而不是dplyr
在命名空间中。
另外,如果我现在重新运行它,它将dplyr
再次安装。
我意识到这可能是由于 R 非标准评估,我尝试了几种 eval/substitute/quote 的组合以使其工作,require
但我无法成功。
有人可以帮助我了解发生了什么以及是否有一些简单的解决方法吗?
如果一个已经实现它的函数存在,我想知道,但我真正感兴趣的是理解为什么我的代码不能按预期工作。
r - 使用 dplyr 和 purrr 反复变异变量
我是 R 自学的,这是我的第一个 StackOverflow 问题。如果这是一个明显的问题,我深表歉意;请善待。
我的问题的简短版本
我编写了一个自定义函数来计算变量逐年变化的百分比。我想使用purrr
'smap_at
函数将我的自定义函数应用于变量名向量。我的自定义函数在应用于单个变量时有效,但在我使用链接时失败map_a
我的自定义函数
当我将此函数应用于 mtcars 数据集中的单个变量时,输出与预期的一样(尽管显然结果的含义是无意义的)。
尝试使用 Purrr 将函数应用于字符向量
我认为我在概念化 map_at 如何将参数传递给函数时遇到了麻烦。我可以在网上找到的所有示例片段都将 map_at 与类似的函数一起使用is.character
,不需要额外的参数。这是我尝试使用purrr
.
这给了我这个错误信息
粘贴错误(“d”,col,sep =“”):缺少参数“col”,没有默认值
我认为这是因为 map_at 作为 传递vars
,df
而不是传递参数col
。为了解决这个问题,我尝试了以下方法:
这向我抛出了这个错误:
我玩弄了一堆不同的版本,包括df
从函数中删除参数calculate_delta
,但我没有运气。
其他潜在的解决方案
1) 这个版本使用sapply
, 而不是purrr
. 我已经尝试过以这种方式解决问题并且遇到了类似的问题。如果可能的话,我的目标是找出一种使用 purrr 的方法。根据我对 的理解purrr
,这似乎是一个典型的用例。
2)我显然可以想到如何使用 for 循环来实现这一点,但是出于类似的原因,如果可能的话,我会尽量避免这种情况。
显然我在想这个错误。请帮忙!
编辑 1
为了澄清,我很好奇是否有一种重复转换变量的方法可以完成两件事。
1) 在原始变量中生成新变量,tbl_df
而不替换替换正在变异的列(如使用dplyr
's 时的情况mutate_at
)。
2) 自动生成新的变量标签。
3) 如果可能,通过使用map_at
.
这可能是不可能的,但我觉得应该有一种优雅的方式来完成我所描述的。
r - 获取 R 函数的参数名称
对于任意函数
我希望能够采用参数名称f
这可能吗?
r - R 将 RSelenium 驱动程序环境作为函数参数传递
我可能没有看到明显的东西,无论如何我想创建函数来自动从远程驱动程序已经处理的 url 中提取文本。我想将 xpath 表达式和可以找到远程驱动程序的环境作为函数参数传递
此函数的可能调用可能是fun.XpathExtractText("//*",env)
但在调用构建部分后不久出现错误消息:
但是如果我直接在 env 中执行从错误消息中提取的调用,它将起作用。
我尝试将环境也作为环境传递 remdir 本身,因为它是一个环境,但这根本不算数,函数在调用构建后卡在同一点。我不知道什么?
r - parse(eval(...), envir = custom) 中的嵌套函数
我有一个自定义的 R 环境
函数b()
按预期运行。
但是a(1)
会抛出错误。
我怎么eval(parse(text = "a(1)"), envir = e)
去上班?
r - R中环境变量的NSE
问题是关于验证环境的存在,如果没有找到,要么创建环境,要么返回因任何原因传递的变量名。本质上,这是我在一系列无监督函数中使用的一个函数,用于确定对象的分配路径,以及响应从外部函数返回的观察变量而返回的函数等。
我的功能适用于我测试过的所有密集用途,但我知道我忘记了一些非常基本的东西,这使得完全不需要使用变通方法。
问题是代表环境名称的 x 变量需要被接受为带引号的字符串或不带引号的字符串。我在很多函数中都使用了这种方法,但由于某种原因,我发现将相同的系统应用到这个系统时会出现很多错误。这是我的例子......请有人告诉我我忘记或找不到的可笑的简单方法,这让我觉得它很荒谬。
为简洁起见,这里是我到目前为止运行的测试:
使用基本包数据的用例示例
还想指出我在类似情况下使用 deparse(substitute (...)) / eval (parse (text = ...)) 但由于某种原因我无法让它与环境设置一起运行......
r - R dplyr - 在变异/摘要中获取变量名作为字符串
我一直在尝试提取传递给 dplyr::mutate() 中的函数的变量的名称,但没有成功。下面是一个简短的示例,我想创建一个在 mutate 中返回字符串“mpg”的函数:
我使用了lazyeval::expr_find(),因为就我对文档的理解而言,替换只“上升”了一层。当我在函数 wrap() 中调用 f() 时它可以工作,但是当我将它放在 group_by()%>%mutate() 中时它返回 mpg 的内容,而不是名称“mpg”
我发现了一些相关的问题,但没有一个能解决我的问题。
非常感谢任何帮助:)
r - 条件变异的 SE 问题
我正在尝试用 mutate 做一个简单的条件。
代码应基于来自同一数据帧的两个变量创建一个名为“性别”的新变量。
我收到以下错误,我不明白。我想这与SE有关。但是我仍然对R不太熟悉。
mutate_impl(.data, dots) 中的错误:
缺少参数“.data”,没有默认值
如果我使用单个 mutate 语句运行代码,我不会遇到任何问题。
r - 尝试将 nlmrt 对象转换为 nls 对象时我在这里做错了什么
我正在尝试使用将"nlmrt
对象转换为"nls"
对象nls2
。但是,只有在调用中明确写入参数的名称时,我才能做到这一点。我不能以编程方式定义参数名称吗?请参阅可重现的示例:
这有效:
但是,这迫使我在调用中对参数名称进行硬编码nls2
。由于与我的实际代码相关的原因,我希望能够做类似的事情
但这会返回一个错误:
是否可以解决这个问题,而不必在调用中明确地硬编码参数的名称nls2
?