在循环中分配一个函数

2023-12-23

我试图为循环中的每个元素分配一个函数。 我希望函数使用变量的值,但它们使用变量的最后一个值:

assign.instrumentslist = function()
{
  for(instList in lists.instruments)
  {
  assign(
      paste("test", instList, sep="."),
      function() {print(instList)},
      envir = .GlobalEnv
      )
   }
}

lists.instruments = c("CL", "HO", "GC")
assign.instrumentslist()
test.CL()
# return "GC"

thx


也许这是最简单的方法:

assign.instrumentslist = function() {
  for(instList in lists.instruments) {
    local({
      i <- instList
      assign(
             paste("test", instList, sep="."),
             function() {print(i)},
             pos = .GlobalEnv
             )
    })
  }
}

关键是创建本地对象(i)在函数的封闭环境上。 在此示例中,环境由以下内容生成local.

这是一个非常非常糟糕的黑客:

lapply(lists.instruments, 
  function(x) .GlobalEnv[[paste("test1", x, sep=".")]] <- function() print(x))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在循环中分配一个函数 的相关文章

随机推荐

  • realloc 但只有前几个字节有意义

    假设我已经使用过ptr malloc old size 分配内存块old size字节 只有第一个header size字节是有意义的 我将把尺寸增加到new size new size大于old size and old size大于he
  • 直接连接:从大型机向 Unix 发送文件

    当我从 Mainframe Connect 直接发送可变长度文件到 UNIX 框时 UNIX 上的文件在 Mainframe 文件的开头有一些额外的字节 我尝试使用不同的 SYSOPTS 选项 但仍然收到这些初始字节 任何想法 您应该考虑将
  • Rust:从动态加载库执行特定代码行时出现段错误

    我正在用 Rust 编写一个简单的基于插件的系统 以获得使用该语言的一些技能和经验 我的系统动态加载库并在运行时执行它们以初始化每个插件 从动态加载的库执行代码时 我遇到了一个有趣的段错误问题 这是加载和运行插件初始化函数的代码 这部分工作
  • LINQ 选择第一个

    嗨 我有这段 linq 代码 var fp lnq attaches First a gt a sysid sysid name 经过分析后 它会生成以下 t sql SELECT TOP 1 t0 sysid t0 name t0 att
  • 如何压缩文件名中包含今天日期的文件夹?

    我有一个批处理和一个 vbs 文件来压缩具有特定目录名称的文件夹并将其复制到另一个文件夹 如何只压缩包含今天日期的文件夹 如果不可能 我如何才能仅压缩将今天日期作为 修改日期 列的文件夹 bat echo off set mypath C
  • admob 广告加载失败:3

    我正在开发一个 Android 应用程序 我想在我的应用程序中显示横幅广告 我以前的应用程序工作正常并且显示广告 当我创建新应用程序时 即使在旧应用程序中广告也没有显示 显示广告加载失败 ad 3 这是 logcat 中显示的内容 11 2
  • Airflow 中的 KubernetesPodOperator 特权 security_context

    我在 Google 的 Cloud Composer 上运行 Airflow 我正在使用KubernetesPodOperator https airflow apache org api airflow contrib operators
  • 当调用 dlclose 时,共享库中的全局变量会发生什么?

    如果通过 dlopen 和 dlclose 机制使用共享库 或 DLL 并且创建的共享库有一些内存来自堆的全局变量 那么当调用 dlclose 时这些变量和内存会发生什么 如果在同一个进程中 再次调用 dlopen 会出现什么行为 If d
  • 带有空 aps 字典的 iOS 推送通知

    进行研究以尝试选择通知类型的方向 我希望能够通知我的应用程序有新数据需要刷新 但不会通过弹出 通知消息打扰用户 这个想法是 如果应用程序打开或关闭 则会发出相同的通知 并且当此 特殊 消息到达并且应用程序打开时 它知道要获取数据 我的想法是
  • SharedPreferences 不适用于真实设备 FLUTTER

    我使用 SharedPreferences 来记住用户名和密码 以便下次登录时无需询问密码 当我使用带有 USB 线的真实设备进行调试时 它运行良好 但当我构建 APK 并安装它时 它在我的设备中不起作用 我不知道我错过了什么 我像这样在登
  • 页面内容是用 JavaScript 加载的,而 Jsoup 看不到它

    页面上的一个块由 JavaScript 填充内容 并且在使用 Jsoup 加载页面后 没有任何信息 有没有办法在解析页面时也获取 JavaScript 生成的内容Jsoup 无法在此处粘贴页面代码 因为它太长 http pastebin c
  • RewriteMap 在 mod-rewrite 中不起作用

    我一直在尝试使用 htaccess 中的 RewriteMap 指令进行简单映射 但由于某种原因我每次都会收到错误 500 我的语法是 选项 FollowSymLinks RewriteEngine on RewriteBase Rewri
  • 如何在R中使用公式排除主效应但保留交互作用

    我不想要主效应 因为它与更精细的因子固定效应共线 所以拥有这些效果很烦人NA 在这个例子中 lm y x z 我想要的互动x 数字 和z 因素 但不是主效应z 介绍 R 文档 formula says 运算符表示因子交叉 a b 解释为 a
  • 如何在 Shader 属性中定义浮点数组?

    我想在我的着色器中定义一个浮点数组 如下所示 Properties TilesX Tiles X Int 10 TilesY Tiles Y Int 10 TileData1 Tile data Float THIS Texture1 Te
  • 如何在 Mac 上安装 build-essential?

    build essential在 Debian Ubuntu 上安装良好 apt search build essential build essential Informational list of build essential pa
  • cppclass Cython/C++ 定义中的重载是否已损坏?

    Cython 文档shows http cython readthedocs io en latest src userguide wrapping CPlusPlus html如何使用重载方法声明现有的 C 类 但是 如果我定义自己的cp
  • 将波斯/阿拉伯数字转换为英文数字

    我怎样才能转换波斯 阿拉伯数字 to 英文数字有一个简单的功能 波斯 阿拉伯数字 gt 0 gt 1 gt 2 gt 3 gt 4 gt 5 gt 6 gt 7 gt 8 gt 9 unicode 上的数字 num0 1776 num1 1
  • jQuery:如何从 $.ajax.error 方法中获取 HTTP 状态代码?

    我正在使用 jQuery 发出 AJAX 请求 我想执行不同的操作 无论 HTTP 状态代码是 400 错误还是 500 错误 我怎样才能实现这个目标 ajax type POST url controller action data fo
  • UI MapView:用户位置注释仅在 iPad 中为白色而不是蓝色脉冲

    我已经使用地图有一段时间了 所以我了解显示用户位置所需的基础知识 map showsUserLocation YES also have the box checked in xib 设置位置管理器 CLLocationManager lo
  • 在循环中分配一个函数

    我试图为循环中的每个元素分配一个函数 我希望函数使用变量的值 但它们使用变量的最后一个值 assign instrumentslist function for instList in lists instruments assign pa