获取 S3 打印方法的对象名称失败

2024-03-18

定义S3类“bar”的对象和打印方法:

foo=list(1)
class(foo) <- c("bar")
print.bar <- function(x,...){
  cat("print.bar says this was ",deparse(substitute(x)),"\n")
}

现在 print(foo) 执行以下操作:

> print(foo)
print.bar says this was  foo 

很好,但自动打印失败:

> foo
print.bar says this was  structure(list(1), class = "bar")

我猜这与该行被评估为顶级表达式的方式有关。在 R-devel 上快速搜索没有结果。谁知道怎么修它?

我想要这个名称的原因是因为我定义的是一个函数,并且我希望能够将“try foo(2)”放入 print 方法中(从对象的名称中获取“foo”)。是的,您可以在 S3 中对函数进行子类化。我想可能还有其他的陷阱..


这是一个相当特殊的情况,因为 R 替换为foo在调用之前按其值print当您在命令行中键入名称时。这可以通过以下方式说明:

foo=list(1)
class(foo) <- c("bar")
print.bar <- function(x,...){
  print(sys.calls())
}

> foo
[[1]]
print(list(1))

[[2]]
print.bar(list(1))

> print(foo)
[[1]]
print(foo)

[[2]]
print.bar(foo)

因此,如果没有名称作为属性(如 Aaron 所示),您根本无法从任何地方提取对象的名称。它根本不存在于调用堆栈中。

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

获取 S3 打印方法的对象名称失败 的相关文章

  • 运行 R.exe 会创建临时文件吗?

    我在想 是否启动 R exewindows创建临时文件并 是否解释类似x lt 5写入那些临时文件 如果创建了临时文件 它们存储在哪里 如果我启动多个 R exe 实例会发生什么情况 他们会共享并覆盖彼此的临时文件吗 R 的每个实例都有自己
  • 在闪亮的应用程序和多个页面中进行身份验证

    在我正在开发的系统中 我有 3 个不同的参与者 用户 管理员 支持团队 使用 Shiny App 我想知道如何向这三个参与者进行身份验证 每个参与者只能访问他们的页面 我发现使用闪亮的服务器专业版可以实现这一点 但它不是免费的 有什么方法可
  • dplyr :过滤一系列行(在一列中)

    虚拟数据框 id family lt c 1 1 2 2 3 3 people lt c male female male female male children dataset lt data frame id family peopl
  • 更改 ggplot 条形图填充颜色

    有了这个数据 df lt data frame value c 20 50 90 group c 1 2 3 我可以得到一个条形图 df gt ggplot aes x group y value fill value geom col c
  • 当按多列分组时,如何命名 dplyr 中的 group_split 列表

    我在 dplyr 中使用 group split 在分割了多个列后 我很难命名列表 当我们按一列分组时 我知道该怎么做here https stackoverflow com questions 57107721 how to name t
  • 在 R 中将文本文件拆分为段落文件

    我正在尝试将一个巨大的 text 文件拆分为多个 text 文件 每个文件仅包含一个段落 让我举个例子 我需要这样的文字 这是第一段 这没有任何意义 因为这只是一个例子 这是第二段 和前一段一样毫无意义 另存为两个独立的 txt 文件 其中
  • R 中有没有快速替换列值的方法?

    假设我们有一个包含数值的数据框 如下所示 Temperature Height 32 157 31 159 33 139 我想更换Height价值观与pic 00001 pic 00002等等 最终结果是 Temperature Heigh
  • R:邻接表到邻接矩阵

    Bonjour 我想将邻接列表 3 列 转换为邻接矩阵 在这个论坛中 我找到了多个有关如何将边列表转换为邻接矩阵的示例 我成功地为两列列表做到了这一点 我已经尝试了在网上可以找到的所有解决方案 但似乎我错过了一小步 我尝试过的 我的变量是用
  • Rglpk - 梦幻足球阵容优化器 - For 循环输出的 Rbind

    我有一个使用 Rgplk 的梦幻足球阵容优化器 它使用for循环生成多个最佳阵容 其数量由用户输入 代码如下 Lineups lt list for i in 1 Lineup no matrix lt rbind as numeric D
  • 将函数应用于每个列组合

    我有一个数据框n列并希望对每个列应用一个函数组合列 这与如何cor 函数将数据帧作为输入并生成相关矩阵作为输出 例如 X lt data frame A rnorm 100 B rnorm 100 C rnorm 100 cor X 这将生
  • 如何对工作区中的元素运行循环?

    gt ls 1 A anorex 1 anorexia B byMonth C clotting 8 counts d D d AD DelayByDay delayed glm D93 15 glmout groups h housing
  • 如何获得 R 帮助?

    R 包可能有哪些可用文档 例如我尝试理解sp包裹 此外help sp 还有哪些用于搜索帮助和文档的其他功能 获取有关您知道其名称的函数的帮助 Use http www inside r org r doc utils Question或者
  • R igraph - 保存布局?

    我想知道是否可以 保存 igraph 网络的布局 以便其他人能够重现相同的图表 目前 Fruchterman Reingold 算法总是创建一个新的网络 par mfrow c 1 2 g lt erdos renyi game 100 1
  • 当添加列较少时追加到现有 SQLite 表,而不将数据库读入 R

    是否有一些简单的方法 无论是在 SQL 端还是在 R 端 将 data frame 附加到具有更多列的现有表 缺失的列应该用 NA 填充 如果它能够优雅地处理比表 1 列数更多的表 2 那么会加分吗 library RSQLite Crea
  • 用闪亮的 R 设计 DT 中的展开行按钮

    我正在尝试设计 DT 中可用的展开行按钮的样式 样式可用here https datatables net examples api row details html 我用于创建数据表的代码是 library DT datatable cb
  • 如何使用 tidyr 将向量中字符串中的每个字符分隔到一列中

    我想将向量中的每个字符串分成列 但我做不到 library tidyr library dplyr df lt data frame x c abe bas dds eer df gt separate x c A B C sep 1 我想
  • 计算数据框中每一行的 R 条件运行总和

    我想创建一个等于 data Rating 的运行总和的列 假设第 3 列和第 4 列中有两个条件成立 特别是 data Year 换句话说 这应该计算直到上一年为止每个 id 的评分累积总和 它应该对数据框中的每一行 大约 50 000 行
  • 如何在knitr中安装软件包?

    到目前为止 我一直在使用这段代码来加载 R 包并编写 R 文件 但我正在尝试使用knitr rm list ls all TRUE kpacks lt c ggplot2 install github devtools mapdata ne
  • 当我用一个观察值运行回归时,为什么“fastLm()”会返回结果?

    为什么fastLm 当我用一项观察进行回归时返回结果吗 下面为什么不lm and fastLm 结果相等吗 library Rcpp library RcppArmadillo library data table set seed 1 D
  • svyby比例的置信区间

    是否存在创建置信区间的现有函数 从一个svyby比例对象 在我的例子中 是一个二进制项目的交叉表survey包裹 我经常比较各组之间的比例 如果有一个可以提取置信区间的函数 使用调查函数svyciprop而不是confint 下面的示例显示

随机推荐

  • smartpackage 中的 Meteor 项目路径

    我正在寻找一种从智能包中查找流星项目路径的方法 例如 获取 meteor 文件夹所在目录的路径 我无法使用节点的 dirname 和 filename 来完成此操作 因为不知何故在流星中它们不可用 有小费吗 从 Meteor 0 6 0 开
  • 如何等待所有协程完成?

    我正在启动一个协程 我希望它在恢复执行主线程之前完成 我的代码简化如下 fun hello for i in 0 100 println hello fun main args Array
  • 多个环境中的 Azure 云服务项目配置(.csdef 和 .cscfg)

    目前我们有一个开发云服务 acme dev service 和一个生产云服务 acme prod service 我们解决方案中当前的设置有一个名为 acme application 的云服务项目 它使用 cscfg 和 csdef 文件的
  • Firebase 电话身份验证在发布时不起作用 (Android)

    当使用我的应用程序的调试版本时 电话身份验证有效 当我在手机上手动安装发布签名的 apk 时 电话身份验证也有效 但是当我将相同的工作 apk 发布到 Play 商店 Alpha 测试 时 我无法使其工作 经过一番挖掘后得到了这个 此应用无
  • Tidyr 与可选组分开

    我正在尝试使用extract来自 tidyr 包 将包含单个字符串的列拆分为 3 个单独的列 该问题的最小工作示例如下 A tibble 3 x 1 question codes
  • jquery ajax post成功返回数据

    我无法取回我的数据 这是我的代码 哪里有问题 谢谢 索引 php
  • 如何使用嵌套生成器编写 jqwik 生成器方法

    使用 jqwik net 尝试生成一个 Rule 类 其中包含一个嵌套的 RuleConfig 类 RuleConfig 类有一个嵌套的ruleProps 它是一个Map statusReturnedFromApplyingRule 方法始
  • 如何序列化包含指向原语的指针的类?

    我正在尝试使用 boost 的功能来序列化指向原语的指针 这样我就不必自己取消引用并进行深度存储 然而 当我尝试这样做时 我遇到了一堆错误 这是一个应该包含的类的简单示例save and load从文件中写入和读取类内容的方法 该程序无法编
  • 如何访问查询结果? [复制]

    这个问题在这里已经有答案了 我正在编写一个简单的测试来验证 id 列中不同值的数量与每个表的行数匹配 我期望能够访问对象的特定值 但是当我运行代码并尝试打印变量的值时 我可以看到我的对象是一个 sqlalchemy engine resul
  • jQuery 滚动对吗?

    我有以下代码 似乎可以在单击时将 div 一直滚动到左侧 我想知道是否 有一种方法可以让它一次只滚动 200px 我也可以让它向右滚动 试图查看 jQuery 文档 但找不到scrollToRight 函数 这是我的代码 leftArrow
  • 是否可以在 Firebase 上查询 !equalTo: null ?

    我使用此查询来验证我的 Firebase 上是否存在数据 使用 AngularFire2 let aux this afData list drivers query orderByChild accountHistory approved
  • Ruby on Rails“content_for:title”如何获得稍后分配的内容?

    简短的问题是 子页面如何 set the title主要布局 details 我们可以在应用程序布局中使用application html erb
  • 通过终端列出视频设备

    如何通过终端列出计算机的视频设备 有没有列出它们的命令 列出视频output设备 例如监视器 system profiler SPDisplaysDataType 这会产生如下所示的输出 Graphics Displays Intel HD
  • 动态加载 Jar 并实例化已加载类的对象

    我尝试将 jar 动态加载到我的 Java 项目中 这是类加载器的代码 public class ClassLoad public static void main String args String filePath new Strin
  • 如何强制将特定程序集加载到 MVC 2 应用程序的每个应用程序域中?

    我有一些松散耦合的代码 这些代码取决于加载到当前应用程序域中的特定程序集 Assembly assembly AppDomain CurrentDomain GetAssemblies Where candidateAssembly gt
  • 为什么我收到#Ecto.Association.NotLoaded?

    我有团队 每个团队都有用户 因此有一个连接表将用户链接到团队 因为它是多对多关系 这是我的模型 defmodule App Team do use App Web model schema teams do field owner id i
  • 从 celery 执行插入时 mysql 命令不同步

    当使用自定义数据库库和 celery 时 我遇到了可怕的 MySQL 命令不同步的问题 库如下 import pymysql import pymysql cursors from furl import furl from flask i
  • 元素不可点击,另一个元素接收点击 - Selenium C#

    我试图单击一个按钮 但我有一个加载程序 需要几秒钟才能消失 这是我收到的错误 OpenQA Selenium WebDriverException HResult 0x80131500 Message unknown error Eleme
  • “atoi”这个名字从何而来?

    在C语言中他们从哪里想出这个名字atoi用于将字符串转换为整数 我唯一能想到的是 Array To Integer 的缩写 但这实际上没有意义 这意味着 Ascii 到 Integer 同样 你可以有atol对于 Ascii 到 Long
  • 获取 S3 打印方法的对象名称失败

    定义S3类 bar 的对象和打印方法 foo list 1 class foo lt c bar print bar lt function x cat print bar says this was deparse substitute