在 R 中定义函数内部函数的好方法

2024-02-15

在R中,当想在另一个函数中使用一个/多个函数时,也许有两种方法。示例函数可以是:

方法一:

make.power <- function(n) {
 pow <- function(x) {
 x^n
 }
 pow
}

方法二:

make.power <- function(n) {
     pow(n)
    }

pow <- function(x) {
     x^n
     }

在我看来(但我不确定),如果父函数有很多子函数,第二种方法是更好的方法。

我的问题是:1)这两种方式在功能上有什么区别吗?例如,函数如何传递变量,或者子函数和父函数之间的关系等。

2)哪一个可能是 R 的首选(可能计算效率更高或结构清晰)?


如果你问的是你给出的具体例子,这个问题对我来说似乎不太宽泛。

这里的主要区别是评估n. For 示例1,返回的函数本质上有一个硬编码的n value.

> n = 100
> f1 = make.power(2)
> f1(2)
[1] 4
> n = 1
> f1(2)
[1] 4

实施例2不会,相反,它将依赖于全局定义n.

> n = 1
> make.power2(2)
[1] 2
> n = 100
> make.power2(2)
[1] 1.267651e+30

随着函数变得更加复杂,范围问题也会变得更加复杂。大卫罗宾逊在评论中提供的链接是一个很好的资源。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 R 中定义函数内部函数的好方法 的相关文章

  • 如何为键盘上的 xml 中的功能键设置不同的背景?

    我正在开发 Android 键盘应用程序 我尝试为普通键和功能键设置不同的背景 但它不起作用
  • 如何使用 R 计算成为列表中中位数的概率?

    假设我有以下数据集 其中显示了假设实验的每个状态的三个观察结果的列表 state lt c Iowa Minnesota Illinois outcome lt list c 5 11 11 c 3 12 8 c 9 14 2 dat lt
  • 选择 R 中的数据表中隐藏时(在绿色加号下方)列的显示顺序

    Context 使用 DataTables 库制作交互式表格时 当屏幕宽度对于列的数量和宽度来说太窄时 列将隐藏在绿色 号下 我有一个非常宽的表格 有 20 多列 其中一些内容非常冗长 因此某些列在所有屏幕宽度下总是隐藏的 每次隐藏新列时
  • 将绘图调用拆分为多个块

    我正在编写一个图的解释 其中我基本上将在第一个块中创建图 然后描述该输出 并在第二个块中添加一个轴 然而 似乎每个块都会强制一个新的绘图环境 因此当我们尝试使用以下命令运行块时会出现错误axis独自的 观察 output html docu
  • 在 R 中绘制 Likert 变量的堆积条形图

    假设我有一个如下所示的数据框 P Q1 Q2 1 1 4 1 2 2 3 4 3 1 1 4 其中的列告诉我哪个人相应地回答了问题 q1 q2 中的哪一个 这些问题需要按照 4 分李克特量表进行回答 例如 批准 表示 1 稍微批准 表示 2
  • pyomo + 网状错误 6 句柄无效

    我正在尝试运行pyomo优化 我收到错误消息 Error 6 The handle is invalid 不知道如何解释它 环顾四周似乎与特权有关 但我不太明白 在下面找到完整的错误跟踪以及重现它的玩具示例 完整的错误跟踪 py run f
  • 将每列的值乘以 R 中另一个 data.frame 中的权重

    我有两个data frames df and weights 代码如下 df看起来像这样 id a b d EE f 1 this 0 23421153 0 02324956 0 5457353 0 73068586 0 5642554 2
  • 在 R 中使用 lapply 绘制多个数据帧

    我正在尝试使用 lapply 函数绘制多个数据帧 每个数据帧一个图 但是尽管有关此主题的所有帖子我都找不到答案 因为我不断收到错误 图的输出列表为空 我的数据结构如下 df1 lt mtcars gt group by cyl gt tal
  • 将阴影区域添加到五分位数之间的直方图中

    All 我有一个包含 2 个直方图的图表 其中我还绘制了代表第 20 40 60 和 80 个百分位数的线条 下面的代码使用虚拟数据重现了类似的图表 data lt rbind data frame x rnorm 1000 0 1 g o
  • 在 r 中的 group_by 之后建模后取消列表列的嵌套

    我想对所有组进行线性回归group by 将模型系数保存在列表列中 然后使用 unnest 扩展列表列 这里我用的是mtcars以数据集为例 注 我想用do here becausebroom tidy 不适用于所有型号 mtcars gt
  • 文本挖掘 pdf 文件/词频问题

    我正在尝试挖掘一篇具有丰富 pdf 编码和图表的文章的 pdf 我注意到 当我挖掘一些 pdf 文档时 我得到的高频词是 phi taeoe toe sigma gamma 等 它与某些 pdf 文档配合良好 但与其他文档配合使用时却得到这
  • Mysql 将 int 转换为 MAC

    我有一些数据可以转换 其中有 2 列 其中一列有 IP 它包含整数值 我在 mysql 查询中使用了以下函数 是否有一个函数可以用来转换我的 mac 列 其中包含整数和数据类型是bigint to MAC地址 SELECT INET NTO
  • 所有 x 轴标签未以 45 度显示

    I m having the code as like below But I m not getting all the x axis labels and it is not displaying in 45 degree when I
  • 如何从 R 中的 txt 文件读取矩阵?

    我有一个带有矩阵的txt文件 Matrix txt 重要 数字之间没有空格 0100 1001 1100 我想在 R 中将其作为矩阵读取 我该怎么做 我尝试使用 as matrix read table Matrix txt sep 但失败
  • R:如何获取该月的周数

    我是 R 新手 我想要该日期所属月份的周数 通过使用以下代码 gt CurrentDate lt Sys Date gt Week Number lt format CurrentDate format U gt Week Number 3
  • R 中用于调用 sed、rsync、ssh 等的 system() 的替代方案:函数是否存在,我应该编写自己的函数,还是我错过了重点?

    最近 我发现了base files命令 与其他命令一起使用 例如getwd write lines file show dir等等 似乎有许多 bash 函数的 R 等价物 我还在 R 中编写了一些函数来简化对ssh and rsync通过
  • 如何从 R 读取 PDF 元数据

    我们很好奇 有没有一种方法可以从 R 读取 PDF 元数据 例如下面显示的信息 通过搜索我对此无能为力 r pdf metadata在当前的问题库中 非常欢迎任何指点 我想不出纯 R 的方法来执行此操作 但您可能可以安装您最喜欢的 PDF
  • R“错误:“}”中出现意外的“}”[重复]

    这个问题在这里已经有答案了 我有一个字符串变量 对于缺少数据的情况 它具有 空值 我想将 空值 重新编码为缺失 而不是说 空值 我正在尝试编写一个循环来删除这些 空值 条目 但我不断收到错误 错误 中出现意外的 for row in dat
  • 条件字体颜色 R Markdown

    我无法找到一种方法来根据变量的值 gt 0 0 或 r setup include FALSE x lt 4 This is an R Markdown document r if x gt 0 textcolor red Markdown
  • 如何绘制具有显着性水平的箱线图?

    前段时间问了一个关于绘制箱线图的问题Link1 https stackoverflow com questions 14604439 plot multiple boxplot in one graph 我有一些包含 3 个不同组 或标签

随机推荐

  • SQL Server 触发器从视图添加/更新表

    我有一个表 我想在将新行添加到视图时添加 更新该表 但我正在努力完成这项工作 我的目标表是课程学习者进度 我的观点是Quiz Results For Course Learner Progress 我已经从记录测验分数的表创建了视图 并由
  • 如何处理 Retrofit 2 中不同类型的响应

    在 Web Api 中返回 JSON 字段可以属于不同的类 someField some string someField en some string ka 我见过一些解决方案 但这是在以前版本的 Retrofit 上 我的 pojo 类
  • Flutter - 错误:没有为“Object”类型定义 getter“docs”

    我正在开发 Flutter 2 2 1 通道稳定 我最近将 SDK 的环境从 2 7 0 更改为 2 12 0 sdk gt 2 12 0 lt 3 0 0 为了添加插件 我遇到了很多错误 尤其是关于零安全性 其中之一是关于从 firest
  • Hibernate 查询集合中的多个项目

    我有一个看起来像这样的数据模型 public class Item private List
  • VsCode 现在在调试模式下在原始 jsx 文件上显示 main.chunk.js

    之前我总是直接在jsx组件文件中调试vscode中的reactjs应用程序 现在我不能这样做 因为当我尝试调试 vscode 时尝试调试一个名为 main chunk js 的文件 我也在用铬 vs Code 调试 main chunk j
  • 错误 MSB3073:命令“npm install”退出,代码为 1

    我正在容器化我的 Net React js 应用程序 但在此过程中我遇到了意外错误 我熟悉了类似的帖子 但没有一个解决方案能解决我的问题 由于构建日志很长 我已将其放入 Pastebin 中 https pastebin com PhfYW
  • C++ 在 Windows 上禁用延迟确认

    我试图在 Windows 计算机上复制实时应用程序 以便能够更轻松地进行调试和更改 但我遇到了延迟确认问题 我已经禁用了 nagle 并确认它提高了一点速度 当发送大量小数据包时 窗口不会立即 ACK 并延迟 200 毫秒 做了更多的研究
  • 关于 HTML 5 中的地理定位

    现在 Google 地图可以在 Firefox 的帮助下以街道精度精确定位我的位置 我知道这是 HTML 5 兼容浏览器的一项新功能 并且该位置是通过使用连接的 WiFi 网络的某种功能来获取的 我希望我没有做出任何愚蠢的假设 我想知道的是
  • 哪条 C++14 规则禁止 constexpr 函数对数据成员进行赋值?

    我的理解是这个 无意义的 代码不是有效的 C 14 class Point public constexpr double setX double newX return x newX private double x 我试图找出 C 14
  • 如何控制 JAX-WS 中的 JAXBContext?

    我需要为每个客户部署相同的 Web 服务 这 javax jws WebService uses Object作为方法参数和返回类型 导致
  • 按钮溢出隐藏不起作用

    我有以下内容 小提琴链接 http jsfiddle net gxe3d59u html
  • 使用 SFINAE 定义一个要求函数不存在的函数是否可以?

    这个问题中的代码基于这个答案 https stackoverflow com a 73307583 4117728 我有点困惑它是如何产生输出的 以及它是否都定义良好 include
  • NSURLConnection 和保持活动状态

    我的客户端应用程序中有一个使用 NSURLConnection 的小错误 我已经追踪到一个意外的连接保持活动 这似乎使网络服务器感到困惑 可能是服务器端的错误 解决方法是在某个时刻强制关闭所有未完成的连接 我可以用 NSURLConnect
  • 在QT中读取window的注册表

    我想列出通过从 HKEY CURRENT USER 读取卸载注册表文件来安装的所有应用程序 但出于某种安全原因 我猜 看起来不能通过使用 QSettings 来完成 QSettings maya HKEY LOCAL MACHINE SOF
  • Stream.CopyTo - 如何获取发送的字节?

    我尝试获取 ftp 上传的传输速度 但我不知道应该在哪里 获取 它 代码片段 FtpWebRequest request FtpWebRequest WebRequest Create job GetDestinationFolder fi
  • SqlBulkCopy 像糖蜜一样慢

    我正在寻找通过 C 加载批量数据的最快方法 我有这个脚本可以完成这项工作 但速度很慢 我读到的证词表明 SqlBulkCopy 是最快的 1000条记录2 5秒 文件包含接近 5000 到 250k 的记录 有哪些事情可以减慢它的速度 表定
  • Angular 8:无法实例化循环依赖 - ActivatedRoute

    我正在尝试整合APP INITIALIZER从我的项目中的 Angular 开始 以便在启动应用程序之前执行一些功能 当我使用时出现问题激活路由来自 Angular 为我服务 错误是 Error Provider parse errors
  • Flutter StreamSubscription 未停止或暂停

    在我的 Flutter 应用程序中StreamSubscription不是暂停或取消 当我打电话时cancel 如果它之前开始 它就会停止 如果我打电话cancel 启动后就不会停止 我正在使用 Firestore 快照侦听器 下面是我的代
  • Android M:即使用户选择“不再询问”,如何打开权限对话框?

    如果不是 提示用户进入设置页面或任何其他解决方案的解决方法是什么 如果用户选择不再询问 您将无法打开请求权限对话框 但您可以向用户显示信息 Override public void onRequestPermissionsResult in
  • 在 R 中定义函数内部函数的好方法

    在R中 当想在另一个函数中使用一个 多个函数时 也许有两种方法 示例函数可以是 方法一 make power lt function n pow lt function x x n pow 方法二 make power lt functio