问题标签 [lazyeval]
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 - 如何使用 dplyr 改变内部的数据框
在内部,do
我mutate_
参考原始数据框调用 a 。问题是我无法访问mutate
. 这与lazyeval
包裹有关,但我无法弄清楚。谢谢您的帮助。
例如,假设此函数返回点的 data_frame。
然后我做了另一个函数来序列化这个(我想用 来标识它id
):
使用此输入:
我应该得到以下信息:
但是,我收到一个错误,因为它找不到该列var_
。
澄清:我找到了其他方法来解决它,但我想利用do
with的力量lazyeval
。
r - 惰性评估、dplyr“过滤器”和 NA
我在使用惰性评估和 dplyr 时遇到了一些愚蠢的问题。我正在尝试过滤一些NA
s 并且不知道为什么lazyeval 版本不起作用。可能我错过了一些东西,但我找不到它。是这样,还是一个错误?
这是一个最小的可重现示例:
两个代码都运行而不会抛出错误。
r - 如何实现类似变异的链式评估?
Dplyr 的mutate
函数可以评估“链式”表达式,例如
如何实施?快速浏览 dplyr 的源代码会发现候选代码的基本结构:
...但是这种“幼稚”的实现不起作用,并且背后的 C++ 代码mutate_impl
非常复杂。我知道它不起作用,因为lazy_eval
on "lazy_dots"
uses lapply
,即每个表达式都是相互独立地评估的,而我宁愿需要链式评估并将结果返回到共享环境。如何让它发挥作用?
r - 如何将未引用的列名列表提供给`lapply`(以便我可以将它与`dplyr`函数一起使用)
我正在尝试编写一个tidyverse/dplyr
我想最终与lapply
(或map
)一起使用的函数。(我一直在努力回答这个问题,但遇到了一个有趣的结果/死胡同。请不要将此标记为重复 - 这个问题是您在那里看到的答案的扩展/背离。)
是否有
1) 一种方法来获取带引号的变量列表以在 dplyr 函数中工作
(而不使用已弃用的SE_
函数) ,或者是否有
2) 某种方法通过lapply
or提供未引用的字符串列表map
我已经使用Programming in Dplyr
小插图构建了我认为最符合当前使用 NSE 标准的功能。
样本数据:
报表生成功能
这适用于生成单个报告:
当我尝试设置要生成的所有 4 个报告的列表时,一切都崩溃了。(诚然,函数最后一行所需的代码——返回一个字符串,然后用它填充列——应该足够线索,我已经走错了方向。)
结果是:
我还尝试将字符串列表转换为名称,然后再将其交给apply
and map
:
在任何情况下,我问这个问题的原因是我认为我已经按照当前记录的标准编写了该功能,但最终我看不出有办法利用这个功能apply
的家庭成员甚至家庭成员purrr::map
. names
没有像userR在这里所做的那样重写要使用的函数https://stackoverflow.com/a/47316151/5088194有没有办法让这个函数使用apply
或map
?
我希望看到这个结果:
r - 如何将 dplyr 动词 R 中的公式或 quosures 作为参数传递
我无法在 dplyr 的过滤器表达式中使用公式或 quosures。
产生错误
我已经阅读了 NSE 和 dplyr 编程的小插曲,并尝试了不同的调用:
但还没有真正做到。
谢谢您的帮助。
会话信息是:
r - 无法从加载的包中找到函数
我创建了一个带有个人功能的本地包,以便在 R 中轻松使用。其中一个旨在用于lidR
包装函数(即grid_metrics
)内的包中。出于这个原因,我把这个脚本的方案作为参考,导出了长名称(例如my_metrics(param1, param2,...)
)和懒惰的名称(例如.my_metrics
),因为我真的很喜欢它的易用性。
不过,如果我加载我的包然后调用惰性函数
它不起作用,所以我必须通过从文件中运行它的代码来将函数加载到内存中。在这个阶段,我可以以两种形式使用它。
在 NAMESPACE 文件中,我可以看到两个表单都已导出,所以我最后的猜测是这可能与某种方式有关,lazyeval
但我不知道如何。