问题标签 [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 - R6 OO 编程中的方法覆盖
我正在开发的包中使用 R6 包进行 OO 编程。我的 R6 对象存储数据框以及其他信息。在我的 R6 对象上调用时,我想覆盖 data.frame() 函数,以便返回其存储的数据帧。
这可能吗?
例如:
我已经阅读了 R6 文档,我想我很困惑我们如何覆盖 print 而不是在 R6 对象上调用的其他函数。
r - R:使 R6 类对象可迭代
在 Python 中,我们可以通过添加__iter__
. 我们可以在 R6 类(或任何类)的 R 中做这样的事情吗?
例如:
我想关注功能
虽然我知道这个例子,但for (l in my_list$elem)
会起作用。
任何答案将不胜感激。
r - 如何调用R6父类中的函数,其中父函数依赖于其他重写的辅助函数
我正在尝试在 R6 中创建一个从其父类继承函数的类。但是,该函数依赖于在子类中覆盖的其他“帮助”函数。
当我调用父函数时,我希望它使用父类中的帮助函数,而不是子类中被覆盖的函数。
这是我的代码如何工作的模型:
预期的行为是打印“父助手”。但是当child_class
调用父级的时main_fn
,它使用child_class
.
有可能避免这种情况吗?或者这就是重写函数的工作原理?
r - 如何在循环中将函数添加到 R 中的 R6Class
我想在 R6Class 上编写包装器,但它不起作用,在我发现这个问题后,我尝试了多种方法,将函数动态添加到 r6 类实例
所以我试过这个,它们都不起作用:
这是因为带有闭包的循环 for 不会创建新范围。所以我试过这个:
这将引发 name 未定义的错误,因为 R6Class 的这种行为是一切都在eval substitute
,因此无法创建从调用它的位置获取范围/环境的新函数。或者有什么办法吗?
我真正的问题是我想创建函数包装器并且我想调用:
有没有办法创建myFunction
将创建 R6Class 的函数?我想要这个的原因是因为我有基于 R6Class 的组件系统,并且想要删除一些需要添加到每个类中的样板,以便更容易使用。我不想创建新的班级系统,我想使用 R6 班级。
r - 如何处理 R 中的未知方法/泛型
许多语言都有处理未知方法的特殊方法(示例)。我最熟悉的是 Python 的__getattr__
. 如果有人调用了您尚未为该类定义的方法,则__getattr__
充当包罗万象并执行某些操作。
我一直在阅读 S4 和 R6 的一些内容,但我还没有找到如何在 R 中做到这一点。这可能吗?
r - 如何在实例化类之前导入类数据
假设类和类的实例化保存在 2 个单独的文件中,您将如何在实例化类之前导入类数据?
如果将下面的代码保存在同一个文件中,则可以正常工作,但我怀疑一旦代码库开始增长,您就会希望将数据拆分为更小的代码块。
我应该使用 [来源],它是否存在自动加载器或任何其他指南?
文件:_class_data.R
文件:运行.R
r - 从同一类中的方法调用方法
我正在尝试在基于类的对象中创建流结构。我有 4 个方法(应该从方法 [run()] 调用 3 个方法。
问题:
假设您在同一个对象/类中,您是否可以从另一个方法调用一个方法。
什么有效:
我能够以正确的输出逐一运行以下方法:
游戏$part_1()
游戏$part_2()
游戏$part_3()
错误:
当我发出 [game$run()] 时,我收到以下错误:
Error in part_1() : could not find function "part_1"
想要的行为:
我希望对象能够运行由其他方法触发的方法(所有方法都在同一个类中)。
r - 在实例化对象运行期间更改属性值
我试图在运行实例化对象的整个过程中更改属性的值。这是下载机制的一部分,其中值 20 设置为执行 20 行数据的第一次下载,其余下载将设置为 1 行。它是用 R 面向对象编程编写的,使用包 R6。
该值被记住是因为它存储在对象中(之前从类中实例化)。
脚本正在从 Rstudio(版本:1.1.456)触发。
观察:
该脚本在第一次运行时将属性值从 切换NULL
为。20
问题:
20
该值在所有脚本运行期间保持不变。
想要的行为:
第一次运行时,该值应以 开头NULL
并交换为20
。
第二次运行脚本,属性值应该开始20
对 if 语句做出反应并将值更改为1
.
从第 3 次运行开始,以及所有其余运行,该值应为星号,1
并且 if 语句将找不到任何匹配项,将值保持为1
.
r - 使用 selectInput() 选择在 R6 类中选择数据
我试图了解如何R6
在 Shiny 应用程序中使用类对象,并且我想R6
使用selectInput()
选项在对象中呈现数据。选择输入选项包含我的R6
对象的名称。
我有以下对象:
在我的 Shiny 应用程序中,我有一个selectInput()
可供选择的 Manel、Carla、Matilde。我需要的是,当我选择一个选项时,我会使用我在 selectInput() 中选择的名称呈现对象的值。下面的闪亮应用程序:
谢谢!
r - OpenAPI 生成的 R 枚举有问题并且似乎什么都不包含
我正在尝试通过通常运行良好的 OpenAPI Generator 创建 R 代码;现在我意识到枚举实际上存在问题。当尝试对这些类进行 source() 时,我得到一个错误“错误值”,在检查时这是有道理的 - 这是生成的代码:
问题是第 10 行中的逗号,我认为:编写类似的东西function(test, ...)
可以让我毫无错误地阅读课程。
然而,问题仍然存在:我看不出有任何理由为什么这段代码会做任何枚举会做的事情,并且实际上打印 egprint(EnumTest$new("enum-value"))
表明我的实际值无处可寻,并且$self
也如预期的那样为 NULL。
生成的代码从一开始就出错了吗?还是我错过了什么?
编辑:
我的 OpenAPI JSON Schema 中的条目如下,如果有帮助的话: