从值获取 R 表达式(类似于引用)

2023-12-30

假设我有一个值x它是某种(未知)类型(特别是:标量、向量或列表)。我想得到代表这个值的 R 表达式。如果x == 1那么这个函数应该简单地返回expression(1). For x == c(1,2))这个函数应该返回expression(c(1,2)). The enquote功能非常接近我想要的,但不完全是。

通过一些尝试,我发现了以下问题的“解决方案”:

get_expr <- function(val) {
  tmp_expr <- enquote(val)
  tmp_expr[1] <- quote(expression())
  return(eval(tmp_expr))
}

get_expr(1) # returns expression(1)
get_expr(c(1, 2)) # returns expression(c(1, 2))
get_expr(list(x = 1)) # returns expression(list(x = 1))

但我认为我的get_expr函数是某种 hack。从逻辑上讲,评估应该是没有必要的。

有没有更优雅的方法来做到这一点?据我所知,substitute并不真正适合我,因为我的参数get_expr函数可能是评估的结果(并且substitute(eval(expr))不做评价)。

我找到了另一种方式通过parse(text = deparse(val)),但这更是一个糟糕的黑客......


as.expression(list(...))似乎做到了:

> get_expr <- function(val) as.expression(list(val))
> str(get_expr(1))
  expression(1)
> str(get_expr(c(1, 2)))
  expression(c(1, 2))
> str(get_expr(list(x=1)))
  expression(list(x = 1))
> val <- list(x=1, y=2)
> str(get_expr(val))
  expression(list(x = 1, y = 2))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从值获取 R 表达式(类似于引用) 的相关文章

  • 通过 R 中的数据子集执行计算

    我想对数据框的 PERMNO 列中的每个公司编号进行计算 其摘要可以在此处查看 gt summary companydataRETS PERMNO RET Min 10000 Min 0 971698 1st Qu 32716 1st Qu
  • R data.table 1.9.2 关于 setkey 的问题

    这似乎是 1 8 10 后引入的一个错误 与包含列表的 DT 的 setkey 相关 运行下面两个代码来查看问题 library data table dtl lt list dtl 1 lt data table scenario 1 p
  • R 多元一步预测和准确性

    我想使用 R 来比较两个预测模型的 RMSE 均方根误差 第一个模型使用 1966 年至 2000 年的估计值来预测 2001 年 然后使用 1966 年至 2001 年的估计值来预测 2002 年 依此类推直至 2015 年 第二个模型使
  • 汇总表中各列的字符值比例

    在这种数据框中 df lt data frame w1 c A A B C A w2 c C A A C C w3 c C A B C B 我需要计算所有列中字符值的列内比例 有趣的是 以下代码适用于大型实际数据集 但对上述玩具数据会引发错
  • 如何在 R 中绘制一列与其余列的关系图

    我有一个数据集 其中 1 是时间 接下来的 14 个是幅度 我想在一张图表上散布所有大小与时间的关系 其中每个不同的列都是网格化的 分层在另一个之上 我想使用原始数据来制作这些图表 并单独制作它们 但只想执行此过程一次 数据集A 唯一的自变
  • 更快的 %in% 运算符

    The 快速匹配 https cran r project org web packages fastmatch index html包实现了更快的版本match对于重复匹配 例如在循环中 set seed 1 library fastma
  • 手动设置scale_fill_distiller()的比例

    我正在尝试制作一系列图表进行比较 举例来说 我想使用iris数据集来制作这样的图 其中我已过滤以仅查看 setosa 物种 library ggplot2 library dplyr iris gt filter Species setos
  • 排序因素与水平

    有人能解释一下 R 中 ordered 参数的用途吗 R says ordered逻辑标志来确定级别是否应被视为有序 按给定的顺序 所以如果我有一个名为名称的因素并设置ordered TRUE names lt factor c fred
  • 计算互相关函数?

    In R 我在用ccf or acf计算成对互相关函数 以便我可以找出哪个移位给我带来最大值 从它的外观来看 R给我一个标准化的值序列 Python 的 scipy 中是否有类似的东西 或者我应该使用fft模块 目前 我正在这样做 xcor
  • 如何绘制大时间序列(数千次给药次数/药物剂量)?

    我正在尝试绘制医院中如何开出单一药物的图解 在这个虚拟数据库中 我在 2017 年 1 月 1 日之后遇到了 1000 名患者 绘图的目的是了解该药物的给药模式 在接近入院 出院或患者住院期间是否更频繁 高剂量给药 Get random d
  • 删除字符串末尾的句点和数字

    如何删除尾随句点 后面紧跟一个数字 长度为一位或两位数字 例子 z lt c awe p 56 red 45 ted 5 you 88 tom 我只想删除 45和 5 你只需要一个简单的正则表达式 z new gsub 0 9 z 一些评论
  • 融化R中的下半矩阵

    如何融化下半三角形加对角矩阵 11 NA NA NA NA 12 22 NA NA NA 13 23 33 NA NA 14 24 34 44 NA 15 25 35 45 55 A lt t matrix c 11 NA NA NA NA
  • dplyr 返回每个组的全局平均值,而不是每个组的平均值

    有人可以解释一下我在这里做错了什么 library dplyr temp lt data frame a c 1 2 3 1 2 3 1 2 3 b c 1 2 3 1 2 3 1 2 3 temp gt group by temp 1 g
  • 获取函数的命名空间

    我正在开发一个包 我希望在其中向对象添加编辑历史记录 该包允许其他包注册用于编辑对象的函数 我正在寻找一种方法来记录注册用于编辑的函数的包的版本 问题是 给定一个函数 如何从导出的位置获取包 我的想法是调查它的搜索路径 但是search 仅
  • 使用字符串中的变量名称访问变量值,R

    Intro 一个数据集有大量的age year变量 age 1990 age 1991 etc 我有一个字符串值数组length age years 表示这些变量 使得age years 1 回报 age 1990 etc Need 我想搜
  • Quantmod 的简单功能不再起作用

    我明天要交论文 我收到了一条关于 quantmod 的非常奇怪的错误消息 这是我在过去几周使用这个包时从未遇到过的 我无法导入特定于道琼斯指数 DJI 的数据 我收到以下错误消息 getSymbols DJI src yahoo from
  • 列出 R 数据文件的内容而不加载

    我有时用print load myDataFile RData 当我加载数据文件时列出它的内容 有没有办法列出内容而不加载数据文件中包含的对象 我认为如果不加载对象就无法做到这一点 解决方案可能是使用包装器将 R 对象保存到save 该函数
  • 使用officer R导出时如何提高ggplots的分辨率

    我想将图表导出到 PPT 并使用Officer 包来实现相同的目的 但是 图表的默认分辨率较低 我想更改它 我目前正在使用以下电话 ph with gg p1 type chart res 1200 其中 p1 是 ggplot 对象 运行
  • 正态分布平均值的贝叶斯推理玩具 R 代码 [降雪量数据]

    我有一些降雪观测 x lt c 98 044 107 696 146 050 102 870 131 318 170 434 84 836 154 686 162 814 101 854 103 378 16 256 我被告知它遵循正态分布
  • 警告消息 - 来自 dummies 包的 dummy

    我正在使用 dummies 包为分类变量生成虚拟变量 其中一些变量具有两个以上类别 testdf lt data frame A as factor c 1 2 2 3 3 1 B c A B A B C C C c D D E D D E

随机推荐

  • React Native foreach 循环

    我正在 React Native 中开发一个小应用程序 我正在寻找类似 foreach 函数的东西 我只是找不到 foreach 循环 不在 StackOverflow 上 甚至不在docs https facebook github io
  • OAuth2 中 OTP/2FA 支持的推荐设计

    我正在尝试将 OTP 2FA 支持添加到 OAuth2 中 但是经过大量阅读RFC6749 https www rfc editor org rfc rfc6749 目前还不清楚如何在不违反规范的情况下干净地添加 OTP 2FA 虽然 OT
  • iPhone 的缓存/离线地图?

    我想在我的应用程序中使用地图 以便尽可能减少流量 完美的解决方案是缓存地图切片 我知道谷歌地图 许可证 是不可能的 我查看了 OpenStreetMaps 这似乎是一个很好的解决方案 下一个 SDK 我发现的唯一一个来自 CloudMade
  • 使用 Rails 中的模型数据填充选择

    我觉得有必要为问这样一个简单的问题而道歉 但我对 Rails 指南越来越感到沮丧 我确信他们回答了我的问题 但他们没有提供足够的背景让我真正理解如何apply他们给我什么 谷歌也没有多大帮助 尽管我可能只是搜索了错误的术语 短语 鉴于该免责
  • 可以 Boost Program_options 分隔逗号分隔的参数值

    如果我的命令行是 gt prog mylist a b c Boost 的program options 可以设置为查看三个不同的参数值吗mylist争论 我已将program options配置为 namespace po boost p
  • 显示来自用户输入的部分数组值匹配

    我有一个带有一堆值的 jQuery 数组 我希望用户能够在输入中键入内容 并与屏幕上显示的数组中的任何内容进行部分匹配 到目前为止 我已经知道何时有完整的匹配 并且我可以将其打印到页面上 但我不确定如何进行部分匹配 这是我到目前为止所拥有的
  • 无法启动服务并出现 net.tcp 绑定错误 10049

    我在使用 net tcp 端点启动 WCF 服务时遇到问题 我收到 10049 错误 My app config
  • 从单独的控制器 angularjs 中检索成功后的数据

    我正在编写一个简单的服务 用于上传文件并将其发布到 Spring 控制器 控制器操作这些数据并以 JSON 形式返回多个对象 我正在使用以下 Angular 服务 myApp service fileUpload http function
  • SQL中如何计算运行总计

    我的数据集采用给定的格式 这是每月级别的数据以及每个月的工资 我需要计算每个月末的累计工资 我怎样才能做到这一点 Account Month Salary Running Total a 1 586 586 a 2 928 1514 a 3
  • HTML 时间标签 - 正确的日期格式

    我想使用正确的格式和标准将时间标签放入我的 html 文档中 这是正确的方法吗
  • 通过 php 函数从 WordPress 短代码中删除空

    标签

    寻找 php 函数 非 jQuery 或 wpaautop 修改 方法来删除 p p 从 WordPress 内部 我尝试了这个 但它不起作用 function cleanup shortcode fix content array arr
  • 在 widget 树中使用 const 会提高性能吗?

    创建widget树时 会插入const在静态小部件提高性能之前 ie child const Text This is some text vs child Text This is some text 我知道 使用 Dart 2 cons
  • 使用java servlet在浏览器中显示Pdf

    我的应用程序中有 pdf 文件 我需要在浏览器中显示pdf 我正在将文件作为 fileInputStream 读取 我需要在我的应用程序中的浏览器中显示 pdf 但我没有 pdf 路径 我有文件流 请给我一些建议和例子 我使用ajax来显示
  • 如何在 Ruby 中解析 url 来获取主域?

    我希望能够使用 Ruby 解析任何 URL 以获取域的主要部分 而无需www 只是example com 请注意没有算法方法可以找到可以为特定顶级域注册域的最高级别 每个注册机构的政策有所不同 唯一的方法是创建所有顶级域以及可以注册域的级别
  • ABP 中的区域设置日期时间

    我在弹出模式中有一个 DateTime 字段 如下所示 它应该只显示时间部分 HTML div class input group date div
  • 是什么导致 EventStore 这么容易抛出 ConcurrencyException?

    Using JOliver活动商店 http github com joliver EventStore3 0 并且刚刚开始使用简单的示例 我有一个使用 NServiceBus 的简单发布 订阅 CQRS 实现 客户端在总线上发送命令 域服
  • 使用我自己的语料库而不是 movie_reviews 语料库在 NLTK 中进行分类

    我使用以下代码并得到它的形式在 NLTK Python 中使用电影评论语料库进行分类 https stackoverflow com questions 21107075 classification using movie review
  • 离子电容器删除 Android 构建的 REQUEST_INSTALL_PACKAGES 权限

    我们正在使用命令创建应用程序 ionic build configuration development ionic capacitor copy android no build npx cap open android 现在最新的 An
  • Android在LinearLayout中动态添加EditText

    我试图使用按钮在现有的 editText 字段下动态添加 editText 字段 目前按下按钮没有任何作用 这是我的代码 XML
  • 从值获取 R 表达式(类似于引用)

    假设我有一个值x它是某种 未知 类型 特别是 标量 向量或列表 我想得到代表这个值的 R 表达式 如果x 1那么这个函数应该简单地返回expression 1 For x c 1 2 这个函数应该返回expression c 1 2 The