r - S3中的美元建议方法
问题描述
我现在正在制作一个 R 包,我必须在返回列表和具有 S3 属性的对象之间进行选择。至于列表,好处是对于初学者来说非常容易使用,因为美元符号使所有元素都易于找到。不好的是,它消除了直接继承(我想返回一个带有一些附加信息的 ts 对象)。
另一种方法是为我的 S3 课程设置美元,如下例所示:
object <- 1
class(object) <- "MyClass"
attr(object,"MyAttribute") <- "This is a secret"
`$.MyClass` <- function(x,name) attr(object,name)
object$MyAttribute
但是,我对此有两个问题:
- 在哪里设置美元部分匹配功能,以便用户在 rstudio 中将“MyAttribute”视为有效选择?
- 此外,这是一个很好的做法还是我应该继续使用简单的列表
谢谢
解决方案
我不认为 RStudio 目前允许这种定制。在其他 R 终端中,您可以使用它rcompgen
来生成完成,但 IIRC RStudio 会做自己的事情。
也就是说,您的问题似乎是基于错误的二分法:
此外,这是一个很好的做法还是我应该继续使用简单的列表
你不需要选择或者。事实上,具有 S3 类的列表很常见,使用属性存储 S3 信息然后通过$
. 只需将您的班级列为清单:
object = structure(
list(value = 1, MyAttribute = "This is a secret"),
class = "MyClass"
)
object$MyAttribute
推荐阅读
- typescript - 哈希器在环回中为相同的密码生成不同的哈希值?
- php - 为什么错误处理在 Laravel 中不起作用
- networking - 主机、域和 wifi 网络
- python - 如何在python中组合一个函数n次
- php - Laravel 搜索功能
- python - 生成结构相同但名称不同的表名
- haskell - Haskell 中 <- 的类型是什么?
- asp.net - 如何在 docker dotnet 框架镜像上使用 dotnet core
- html - Angular 的条件之一是仅检查某些字符的密码字段 [! @$% & *]
- php - 如何在 laravel 中仅检查数据库中存储的复选框值?