用于扩展data.frame的S4类的视图()

用于扩展data.frame的S4类的视图(),r,s4,R,S4,我试图定义一个扩展data.frame的S4类,它的行为就像data.frame一样,但在插槽info中保存一些附加信息。这几乎适用于我在data.frame上使用的所有函数,但在View()上失败,因为当我在我的类上使用View()时,它不会显示用data.frame调用它时看到的表格形式,而是在列表上调用View()时通常看到的形式 以下是我尝试过的: #Define class setOldClass("data.frame") setClass( "my

我试图定义一个扩展
data.frame
的S4类,它的行为就像
data.frame
一样,但在插槽
info
中保存一些附加信息。这几乎适用于我在
data.frame
上使用的所有函数,但在
View()
上失败,因为当我在我的类上使用
View()
时,它不会显示用
data.frame
调用它时看到的表格形式,而是在列表上调用
View()
时通常看到的形式

以下是我尝试过的:

#Define class
setOldClass("data.frame")
setClass(
  "myDF",
  contains= "data.frame",
  slots = c(info = "character")
)

#Set method for as.data.frame
setMethod(
  "as.data.frame",
  signature = "myDF",
  function(x, ...){
    S3Part(x, strictS3 = T)
  }
)

#create instance
d <- new("myDF", data.frame(x=1:5, y=6:10), info="someInfo")

#This doesn't show the tabular structure but looks like calling View() on a list
View(d)

#What I want it to look like
View(as.data.frame(d))

#定义类
setOldClass(“data.frame”)
setClass(
“多年筹资框架”,
contains=“data.frame”,
插槽=c(info=“character”)
)
#设置as.data.frame的方法
设置方法(
“as.data.frame”,
signature=“myDF”,
函数(x,…){
S3部分(x,S3=T)
}
)
#创建实例

d我自己发现了:结果表明,这种行为似乎取决于我使用的RStudio版本。从RStudio版本1.3.1093更新到1.4.1106后,
视图(d)
视图(as.data.frame(d))
显示相同的结果。

您知道版本之间的区别,以及使其工作的相关更改吗?不幸的是,您不知道。我搜索了发行说明,但找不到任何我认为可以解释行为变化的东西。你能给我一个屏幕截图,看看你喜欢它和它是如何显示的吗?我把屏幕截图放在帖子里了。但是,正如下面的答案所述,这似乎是由于我使用的RStudio版本过时造成的,可以通过更新RStudio来修复。