Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有S4类的自定义软件包的R错误:class“;“类名”;在“包”中有一个锁定的定义;pkgname“;_R_Class_Oop_Packages_S4 - Fatal编程技术网

带有S4类的自定义软件包的R错误:class“;“类名”;在“包”中有一个锁定的定义;pkgname“;

带有S4类的自定义软件包的R错误:class“;“类名”;在“包”中有一个锁定的定义;pkgname“;,r,class,oop,packages,s4,R,Class,Oop,Packages,S4,我创建了一个包含以下函数的包: make_LD <- function(a) { setClass("LongitudinalData", slots = list(subject = "numeric", visit = "numeric", room = "character", timepoint = "numeric", value = "numeric")) new("LongitudinalData", subject = a$id, visit = a$visit,

我创建了一个包含以下函数的包:

make_LD <- function(a) {
  setClass("LongitudinalData", slots = list(subject = "numeric", visit = "numeric", room = "character", timepoint = "numeric", value = "numeric"))
  new("LongitudinalData", subject = a$id, visit = a$visit, room = a$room, timepoint = a$timepoint, value = a$value)
}

有人能解释一下我应该如何在包中定义一个S4类,以便可以使用其他地方的数据实例化该类的新对象吗?提前感谢。

发生这种情况是因为
make\uld
每次调用类时都试图重新定义类
“纵向数据”
(这就是
setClass
所做的)。因此,当用户调用它时,R拒绝重新定义该类,因为它会与已经存在的定义(如果有的话)冲突


最有可能的情况是,您希望将
setClass
语句作为独立语句放在包中的某个位置。然后,函数
make\u LD
只调用
new
并返回结果。

发生这种情况是因为
make\u LD
每次调用时都试图重新定义类
“纵向数据”
(这就是
setClass
所做的)。因此,当用户调用它时,R拒绝重新定义该类,因为它将与已经存在的定义(如果有的话)冲突

最有可能的情况是,您希望将
setClass
语句作为独立语句放在包中的某个位置。然后,函数
make\u LD
只调用
new
并返回结果

Error in assignClassDef(Class, classDef, where) : class "LongitudinalData" has a locked definition in pkgname'