R:apply() 与 for 循环的混淆

2023-12-04

我知道我应该避免 for 循环,但我不太确定如何使用 apply 函数来做我想做的事情。

这是我正在尝试做的事情的一个稍微简化的模型。因此,本质上我有一个很大的预测变量矩阵,并且我想在索引预测变量的每一侧使用 5 个预测变量的窗口来运行回归(i 在 for 循环的情况下)。对于 for 循环,我可以这样说:

results<-NULL
window<-5
for(i in 1:ncol(g))
{
    first<-i-window #Set window boundaries
    if(first<1){
        1->first
    }
    last<-i+window-1
    if(last>ncol(g)){
        ncol(g)->last
    }
    predictors<-g[,first:last]

    #Do regression stuff and return some result
    results[i]<-regression stuff
}

有没有一个好的方法可以使用 apply 函数来做到这一点?我的问题是,应用的向量将被推入函数中,这实际上并不重要。重要的是索引。


这个问题涉及《The R Inferno》中提出的几个要点http://www.burns-stat.com/pages/Tutor/R_inferno.pdf

您应该避免一些循环,但不是全部。使用 apply 函数更多的是隐藏循环而不是避免循环。这个例子似乎是留在“for”循环中的一个不错的选择。

增长对象通常是不好的形式——在某些情况下效率极低。如果您打算制定一揽子规则,那么“不生长对象”比“避免循环”更好。

您可以通过以下方式创建具有最终长度的列表:

result <- vector("list", ncol(g))
for(i in 1:ncol(g)) {
    # stuff
    result[[i]] <- #results
}

在某些情况下,您可能会认为该命令:

window<-5

意味着给我一个逻辑向量,说明“window”的哪些值小于-5。

空格很好用,主要是为了不迷惑人类,而是直接得到上面的意思,不迷惑R。

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

R:apply() 与 for 循环的混淆 的相关文章

随机推荐

  • 将带有图像的 JLabel 添加到 JList 以显示所有图像

    这是我的代码 它不在框架中显示图像 而是显示一些文本 有人会建议我应该在代码中进行哪些更改 以便它允许我在框架中显示图像吗 import java awt Component import java awt Image import jav
  • 如何规范 Git 中的工作树行结尾?

    我克隆了一个行结尾不一致的存储库 我添加了一个 gitattributes它为我想要规范化的文件设置文本属性 现在 当我提交更改时 我收到消息 warning CRLF will be replaced by LF in FILE The
  • C# - 为什么这个变量在通过方法后没有被更改[重复]

    这个问题在这里已经有答案了 所以我显然对编程相当陌生 但我试图找出为什么这不起作用 我正在尝试获取字符串 myname 并将 Mr 添加到其开头 我知道我可以简单地做到这一点myname Mr myname但是我试图了解如何使用方法来更改变
  • n 组位的高效随机排列

    对于产生精确的位模式的问题n设置位 我知道两种实用的方法 但它们都有我不满意的局限性 首先 您可以枚举在预先计算的表中设置了那么多位的所有可能的字值 然后在该表中生成一个随机索引以挑选出可能的结果 这样做的问题是 随着输出大小的增长 候选输
  • 使用电子邮件地址将文件上传到云端

    所以我不确定这是否可能以及是否有意义 我正在尝试在我的应用程序中学习和使用云空间 因此 作为示例 我尝试创建一个应用程序来在 Google Drive 中上传文件 我注册了我的应用程序并使用了谷歌提供的一些参考资料 我现在可以上传文件了 我
  • 我可以有一个没有聚集索引的主键吗?另外我可以有多值聚集索引吗?

    各位 我想了解以下问题的答案 我可以有一个没有聚集索引的主键吗 我知道当我们在列上创建主键约束时 它默认创建一个聚集索引 那么在这种情况下 我应该如何停用聚集索引 我可以有一个包含多个列的聚集索引吗 就像在非聚集中一样 我可以为单个非聚集索
  • Django:如何为允许多个文件上传的字段编写干净的方法?

    我有一个用于上传图像的表单 如果我遵循 Django 的标准清理表单的特定字段属性 这就是我的 clean 方法通常的样子 class UploadImagesForm forms Form image forms FileField de
  • 填充二维 numpy 数组给定索引之间的值

    给定一个 numpy 数组 a np zeros 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • Windows 上需要 Mono 3.0 的配置文件

    是否有一个教程告诉我如何编写 mono 3 0 的配置文件 以便我可以使用它 微软视觉工作室 2010 其背后的原因是我的应用程序使用绑定列表 当我尝试在 Mono 中运行时 我收到此错误 WindowsFormsApplication2
  • 我正在学习java中的异常处理(基本上是继承)

    看看下面的程序 import java io import java rmi class class1 public void m1 throws RemoteException System out println m1 in class
  • for循环内的回调完成后如何执行函数?

    我在搜索函数中有一个 for 循环 其中有一个在循环内执行回调的函数 我想在循环之后以及所有回调完成之后执行 BUILD 函数 我不知道如何做到这一点 因为循环在所有回调完成之前完成 回调是获取数据的 API 请求 我想使用该数据进行 BU
  • 使用 Angular formArray 动态添加表单字段

    我有一些表单字段 想要动态添加更多来自另一个视图的字段 用户可以在其中输入表单字段类型 长度和名称 我需要使用这些值构造表单字段 我如何设法构建一个字段 textbox name is one 但是如果我尝试添加另一个字段 textbox
  • pandas中如何判断某列是否包含某些元素

    我想检查一下该列是否app包含元素myList import pandas as pd df pd DataFrame app a b c e f myList b f print df Output app 0 a b c 1 e f E
  • Android - 地图标记绕 X 轴和 Y 轴的动画旋转

    我想知道是否可以为 Google 地图标记沿 x 轴和 y 轴旋转设置动画 就像我们如何使用 ObjectAnimator 围绕 x 轴和 或 y 轴旋转 ImageView 一样 显然 人们可以顺时针旋转 改变 标记的方向 即沿着 z 轴
  • 如何为服务器启用 AVIF 支持

    AVIF 图像格式看起来是一种非常有前途的格式 如何在网络服务器上编译和使用它 我的具体是 Ubuntu 18 04 Nginx 但我正在寻找如何编译和开始转换图像的要点 AVIF似乎是一种新格式 并没有找到太多信息 但是 让我们立即看看调
  • 单击切换下拉菜单

    我正在尝试创建一个下拉菜单 该菜单在单击而不是悬停时激活 到目前为止 我已经使用一点 JavaScript 进行了单击操作 但是虽然子菜单显示得很好 并且如果单击另一个菜单 则其他子菜单会隐藏 但如果单击其父菜单 我无法弄清楚如何隐藏子菜单
  • 方向改变时 UIScrollview 内容大小

    我有一个带分页的滚动视图 在 viewDidLoad 中 我检查当前方向是否为横向 然后将其内容大小的高度设置为 440 if UIDeviceOrientationIsPortrait UIDevice currentDevice ori
  • 如何检查Android应用程序是在后台运行还是在前台运行?

    例如我的项目中有这个代码 public class Utilities extends Application private static int stateCounter public void onCreate super onCre
  • 即使没有任何错误,我的discord.js 机器人也不会回复用户消息[重复]

    这个问题在这里已经有答案了 我的discord js 机器人版本为13 1 0 我的节点版本为16 7 0 我在终端中输入了这些命令 npm init创造包 json and npm install discord js安装不和谐包 我把代
  • R:apply() 与 for 循环的混淆

    我知道我应该避免 for 循环 但我不太确定如何使用 apply 函数来做我想做的事情 这是我正在尝试做的事情的一个稍微简化的模型 因此 本质上我有一个很大的预测变量矩阵 并且我想在索引预测变量的每一侧使用 5 个预测变量的窗口来运行回归