问题标签 [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.

0 投票
0 回答
145 浏览

r - R6 OO 编程中的方法覆盖

我正在开发的包中使用 R6 包进行 OO 编程。我的 R6 对象存储数据框以及其他信息。在我的 R6 对象上调用时,我想覆盖 data.frame() 函数,以便返回其存储的数据帧。

这可能吗?

例如:

我已经阅读了 R6 文档,我想我很困惑我们如何覆盖 print 而不是在 R6 对象上调用的其他函数。

0 投票
0 回答
66 浏览

r - R:使 R6 类对象可迭代

在 Python 中,我们可以通过添加__iter__. 我们可以在 R6 类(或任何类)的 R 中做这样的事情吗?

例如:

我想关注功能

虽然我知道这个例子,但for (l in my_list$elem)会起作用。

任何答案将不胜感激。

0 投票
1 回答
137 浏览

r - 如何调用R6父类中的函数,其中父函数依赖于其他重写的辅助函数

我正在尝试在 R6 中创建一个从其父类继承函数的类。但是,该函数依赖于在子类中覆盖的其他“帮助”函数。

当我调用父函数时,我希望它使用父类中的帮助函数,而不是子类中被覆盖的函数。

这是我的代码如何工作的模型:

预期的行为是打印“父助手”。但是当child_class调用父级的时main_fn,它使用child_class.

有可能避免这种情况吗?或者这就是重写函数的工作原理?

0 投票
1 回答
164 浏览

r - 如何在循环中将函数添加到 R 中的 R6Class

我想在 R6Class 上编写包装器,但它不起作用,在我发现这个问题后,我尝试了多种方法,将函数动态添加到 r6 类实例

所以我试过这个,它们都不起作用:

这是因为带有闭包的循环 for 不会创建新范围。所以我试过这个:

这将引发 name 未定义的错误,因为 R6Class 的这种行为是一切都在eval substitute,因此无法创建从调用它的位置获取范围/环境的新函数。或者有什么办法吗?

我真正的问题是我想创建函数包装器并且我想调用:

有没有办法创建myFunction将创建 R6Class 的函数?我想要这个的原因是因为我有基于 R6Class 的组件系统,并且想要删除一些需要添加到每个类中的样板,以便更容易使用。我不想创建新的班级系统,我想使用 R6 班级。

0 投票
2 回答
86 浏览

r - 如何处理 R 中的未知方法/泛型

许多语言都有处理未知方法的特殊方法(示例)。我最熟悉的是 Python 的__getattr__. 如果有人调用了您尚未为该类定义的方法,则__getattr__充当包罗万象并执行某些操作。

我一直在阅读 S4 和 R6 的一些内容,但我还没有找到如何在 R 中做到这一点。这可能吗?

0 投票
2 回答
177 浏览

r - 如何在实例化类之前导入类数据

假设类和类的实例化保存在 2 个单独的文件中,您将如何在实例化类之前导入类数据?

如果将下面的代码保存在同一个文件中,则可以正常工作,但我怀疑一旦代码库开始增长,您就会希望将数据拆分为更小的代码块。

我应该使用 [来源],它是否存在自动加载器或任何其他指南?

文件:_class_data.R

文件:运行.R

0 投票
1 回答
373 浏览

r - 从同一类中的方法调用方法

我正在尝试在基于类的对象中创建流结构。我有 4 个方法(应该从方法 [run()] 调用 3 个方法。

问题:

假设您在同一个对象/类中,您是否可以从另一个方法调用一个方法。

什么有效:

我能够以正确的输出逐一运行以下方法:

游戏$part_1()

游戏$part_2()

游戏$part_3()

错误:

当我发出 [game$run()] 时,我收到以下错误:

Error in part_1() : could not find function "part_1"

想要的行为:

我希望对象能够运行由其他方法触发的方法(所有方法都在同一个类中)。

0 投票
0 回答
67 浏览

r - 在实例化对象运行期间更改属性值

我试图在运行实例化对象的整个过程中更改属性的值。这是下载机制的一部分,其中值 20 设置为执行 20 行数据的第一次下载,其余下载将设置为 1 行。它是用 R 面向对象编程编写的,使用包 R6。

该值被记住是因为它存储在对象中(之前从类中实例化)。

脚本正在从 Rstudio(版本:1.1.456)触发。

观察:

该脚本在第一次运行时将属性值从 切换NULL为。20

问题:

20该值在所有脚本运行期间保持不变。

想要的行为:

第一次运行时,该值应以 开头NULL并交换为20

第二次运行脚本,属性值应该开始20对 if 语句做出反应并将值更改为1.

从第 3 次运行开始,以及所有其余运行,该值应为星号,1并且 if 语句将找不到任何匹配项,将值保持为1.

0 投票
1 回答
166 浏览

r - 使用 selectInput() 选择在 R6 类中选择数据

我试图了解如何R6在 Shiny 应用程序中使用类对象,并且我想R6使用selectInput()选项在对象中呈现数据。选择输入选项包含我的R6对象的名称。

我有以下对象:

在我的 Shiny 应用程序中,我有一个selectInput()可供选择的 Manel、Carla、Matilde。我需要的是,当我选择一个选项时,我会使用我在 selectInput() 中选择的名称呈现对象的值。下面的闪亮应用程序:

谢谢!

0 投票
0 回答
61 浏览

r - OpenAPI 生成的 R 枚举有问题并且似乎什么都不包含

我正在尝试通过通常运行良好的 OpenAPI Generator 创建 R 代码;现在我意识到枚举实际上存在问题。当尝试对这些类进行 source() 时,我得到一个错误“错误值”,在检查时这是有道理的 - 这是生成的代码:

问题是第 10 行中的逗号,我认为:编写类似的东西function(test, ...)可以让我毫无错误地阅读课程。

然而,问题仍然存在:我看不出有任何理由为什么这段代码会做任何枚举会做的事情,并且实际上打印 egprint(EnumTest$new("enum-value"))表明我的实际值无处可寻,并且$self也如预期的那样为 NULL。


生成的代码从一开始就出错了吗?还是我错过了什么?

编辑:

我的 OpenAPI JSON Schema 中的条目如下,如果有帮助的话: