问题标签 [r6]
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 - 专有系统和银行之间的 RSI(使用 TTR)结果不同
问题:
即使使用相同的设置,我的系统和银行之间的计算 RSI 怎么会有差异?两个系统的源数据 (OHLC) 相同。我故意省略了“maType”,因为默认值为“MA”。
迄今为止的观察:
阅读此链接:https ://quant.stackexchange.com/questions/30134/r-rsi-calculation-ttr-package
标准 TTR RSI 似乎使用 Wilder EMA。我认为这可能是 RSI 结果不同的原因。
当前故障排除状态:
做了一些添加 wilder = FALSE 的测试,这使得 RSI 值接近银行值,但不准确。我还注意到,无论您添加 emaType 还是忽略它,RSI 结果都会有所不同,这似乎是一个错误,因为忽略它应该使用 emaType="EMA"。
场景:
使用 R R6 创建面向对象的类并使用 TTR 创建 RSI 指标结果:
专有系统的结果(使用“要价”)。
OHLC 数据(从银行 API 下载)+“RSI 结果”:
银行图形上的结果:银行也使用 period = 14 和“要价”。
r - 如何在 R 中将“foreach”和“%dopar%”与“R6”类一起使用?
我在尝试使用%dopar%
并foreach()
与R6
类一起使用时遇到了问题。环顾四周,我只能找到两个与此相关的资源,一个未回答的SO 问题和一个在存储库上的开放GitHub 问题。R6
在一条评论(即 GitHub 问题)中,建议通过将parent_env
类的 重新分配为SomeClass$parent_env <- environment()
. 我想了解在of中调用environment()
此表达式(即 )时究竟指的是什么?SomeClass$parent_env <- environment()
%dopar%
foreach
这是一个最小的可重现示例:
现在,下面Task
的类使用Work
构造函数中的类。
在Factory
类Task
中,创建类并foreach
在..m.thread()
.
然后,它被称为:
如果没有以下行object$parent_env <- environment()
,则会引发错误(即,如其他两个链接中所述):Error in { : task 1 failed - "object 'Work' not found"
.
我想知道,(1)分配parent_env
内部时有哪些潜在的陷阱foreach
,(2)为什么它首先起作用?
更新1:
- 我
environment()
从内部返回foreach()
,private$..warehouse
捕捉那些环境 - 在调试会话中使用
rlang::env_print()
(即,browser()
语句在执行结束后立即放置foreach
)它们的组成如下:
r - 作为 R6 类成员函数的替换函数
我一直在玩 R6 ab bit 并尝试实现一个替换功能(在精神上类似于base::`diag<-`()
)。得知以下内容不起作用,我并不感到惊讶
这在前缀表示法中对应什么?以下所有工作都按预期工作,所以我想这些都不是
我对可能的解决方法不太感兴趣,但更想了解为什么上述内容无效。
r - 在包中的私有 R6 方法中导入 magrittr
去年我在 R 中编写了一个 BaseX 客户端(https://github.com/BaseXdb/basex/tree/master/basex-api/src/main/r),现在我正在尝试为这个驱动程序构建一个包。
驱动程序是使用R6系统构建的。我将这些指令添加到RbaseXClient.R
:
使用以下代码初始化驱动程序:
第 4 行self$str_receive
使用 magrittr pipe-operator %>%
。str_receive
被定义为公共方法。
私有(第 15 行)方法中使用了相同的管道运算符,void_send
但出现此错误:
如何使管道运算符(以及所有其他导入)可用于私有方法?
本
r - 为 R6 类向量实现方法分派
是否有关于如何将 R6 对象向量的方法分派到数据框或列表中的指导?
这适用于单个 R6 类
按照建议在另一个线程中实现 S3 方法分派对于单个 R6 对象非常有效,例如:
但是应该如何实现以下内容:
返回的数据框应为每个 R6 对象和字段名称提供一行,应用作列名称,其值在每一行中
r - R - 将 Python 类转换为 R 的 R6 类 - 唯一名称错误
我正在翻译在 Julia(用于主要代码 - https://rosettacode.org/wiki/Word_search#Julia)和 Python(用于创建 Grid 类 - https:// /rosettacode.org/wiki/Word_search#Python)。
我正在尝试将 Grid 的类定义从 Python(见下文)重写为 R:
以下是我将 Python 类转换为R6
类的尝试:
以下是我在 R 中收到的错误消息:
请提供有关如何正确执行此翻译的建议。
谢谢你。
r - R:如何重载 + 运算符来调用将函数添加到 R6 类的方法?
我的目标是重载+
运算符,以便在R6 对象上调用方法。这是一个带有 R6 类对象的玩具示例,该类对象本身aclass
具有add_function(foo)
存储某些任意函数的方法。
我想用ggplot2 的 +.gg 或 +(e1,e2)的样式替换对add_function(foo)
by的调用。我检查了ggplot2 github 代码,但无法弄清楚。+ foo
这是一个 R6 对象,我们可以在其中添加任意函数
这有效
这失败了
我的目标是做与上面相同的事情,即将 foo 添加到对象中,但现在通过重载 + 运算符以更好的方式完成工作
我不确定如何解决这个问题,或者它是否真的可能......
谢谢你的帮助!
osgi - 获取工厂服务的引用(OSGI - AEM 上下文)
我正在尝试获取对我创建的工厂服务的引用(在 AEM 6.4.6 中)并且失败了。这是代码(确实尝试搜索类似的,但没有找到直接的答案。我可能搜索得不够多,或者我正在做的事情可能完全错误。期待专家的回复)。
更新 3:(最后更新 1 和 2) - 这是一个关于如何使用引用获得它的问题。但是,如果专家可以分享其他方法,那也很棒。
服务代码(在第一个包中)
服务实现代码(另一个捆绑包 - 第二个捆绑包,注意它是一个工厂)
参考
选项 1(直接参考):
选项 2(间接使用绑定和取消绑定)
这些似乎都不起作用。在第一种情况下,godaDataServiceFactory 为空。第二种情况,列表总是空的。请注意,消费者是一个 servlet。
我的 GitHub 存储库
消费者-> https://github.com/GodaProjects/aem646
API -> https://github.com/GodaProjects/api
API IMPL -> https://github.com/GodaProjects/apiImplJcr
更新1:
对于选项 1,servlet 仍然不满意。
参考 godaDataServiceFactory
Unsatisfied Service Name: com.goda.core.services.GodaDataServiceFactory Target Filter: (sample=test) Cardinality: 1..1 Policy: static Policy Option: relucant No Services bound
对于第二个选项,列表保持为空
更新 2
消费者项目是使用 Archetype 13 创建的(具有使用工厂服务的 servlet)-> https://github.com/GodaProjects/aem646
API 项目是使用 Archetype 18 创建的(具有工厂的 API 接口)-> https://github.com/GodaProjects/api
API IMPL 项目是使用 Archetype 18 创建的(具有 API 项目中 API 的实现)-> https://github.com/GodaProjects/apiImplJcr
r - [R6] as.vector(x, "symbol") 中的错误:无法将“环境”类型强制转换为“符号”类型的向量
我在以下代码中使用了我的 R6 对象和函数
在某些情况下,它是成功完成的。
但是,错误发生在以下代码中
为什么在函数之外定义Test对象时会出错?
请告诉我如何避免在使用 Test 类和 someAnalysis 方法时出错
r - 自动移除 R6 对象
我用 R6 包创建了一个银行账户类。它具有私有的余额(生成后无法访问)和提取和存入一定金额的方法以及打印方法。(哈德利·威克姆 14.3.3)
目前,如果我创建一个新的 R6 对象并调用大于其初始余额的金额的提款函数,该函数将停止并打印一条消息。相反,我希望直接删除新创建的对象。我怎样才能做到这一点?