这是两部分的问题.我想基于不同的槽值设置原型s4对象的值,或者我想将其作为方法实现.
我有一个我想要创建的对象.它有一些插槽.我想根据从另一个插槽输入的值设置一个插槽值.这是我想要做的简化版本.
即
setClass("Person",
representation(name = "character", age = "numeric", doubleAge = "numeric"),
prototype(name = "Bob", age = 5, doubleAge = 10) )
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个对象,但是根据年龄槽设置doubleAge值.
p1 <- new("Person", name = "Alice", age = 6)
Run Code Online (Sandbox Code Playgroud)
我知道了
An object of class "Person"
Slot "name":
[1] "Alice"
Slot "age":
[1] 6
Slot "doubleAge":
[1] 10
Run Code Online (Sandbox Code Playgroud)
但我想看看doubleAge是12.在原型,我不知道如何改变doubleAge = 10为类似doubleAge = 2*age
所以作为一个解决方案,我试图创建一个设置函数init,在创建后设置值.这是第2部分的问题.
setGeneric("init", "Person", function(object) {
standardGeneric("init")
}
setMethod("init","Person", function(object) {
object@doubleAge <- object@age*2
object
}
Run Code Online (Sandbox Code Playgroud)
如果我object@doubleAge在方法中打印它返回12但似乎范围结束,因为它返回时为10
目前有效的方法非常相似,但不正确. …
我正在编写从Python到C的接口,C中的数据结构是一些变量大小的数组.由于在初始化数组之前大小不是常量,因此我不知道数组的长度.
使数组大小为1000,其大小可能在1到1000之间 - 这是一个不好的做法吗?什么是更好的方法来做到这一点?malloc的?
上下文:该数组的指针将用于通过网络作为应用层协议发送,因此我需要将数据作为数组.