【发布时间】:2021-05-18 07:11:15
【问题描述】:
我想复制一个 R 对象的结构,它是一个带槽的列表。
是否可以这样做以生成没有数据的副本 R 对象,或者将所有数据替换为 NA?
下面是一个极其简化的 R 列表对象,以槽为例:
setClass("Car",representation=representation(
price = "numeric",
numberDoors="numeric",
typeEngine="character",
mileage="numeric"
))
aCar <- new("Car",price=20000,numberDoors=4,typeEngine="V6",mileage=143)
obj <- list(test1="testing",test2=aCar)
用 NA 手动替换每个插槽是行不通的,因为这是一个简化版本...有什么想法吗? 谢谢!
【问题讨论】:
-
lists 没有插槽,所以我不确定你想要什么,lapply(obj, function(x) if (isS4(x)) new(class(x)) else NA)? -
我的列表似乎包含插槽,如上例所示(除非我没有使用正确的术语)... 2 $ 列表: chr "testing" $ :Formal class 'Car ' [package ".GlobalEnv"] 有 4 个插槽 .. ..@ price : num 20000 .. ..@ numberDoors: num 4 .. ..@ typeEngine : chr "V6" .. ..@ mileage : num 143 但是您的建议似乎可以解决问题 - 谢谢!
标签: r