小编cha*_*non的帖子

如何使用方法在S4对象r中设置值(不需要输入值)

这是两部分的问题.我想基于不同的槽值设置原型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

目前有效的方法非常相似,但不正确. …

oop r s4

6
推荐指数
1
解决办法
140
查看次数

是否过度配置预分配C阵列的不良做法?

我正在编写从Python到C的接口,C中的数据结构是一些变量大小的数组.由于在初始化数组之前大小不是常量,因此我不知道数组的长度.

使数组大小为1000,其大小可能在1到1000之间 - 这是一个不好的做法吗?什么是更好的方法来做到这一点?malloc的?

上下文:该数组的指针将用于通过网络作为应用层协议发送,因此我需要将数据作为数组.

c arrays

1
推荐指数
1
解决办法
96
查看次数

标签 统计

arrays ×1

c ×1

oop ×1

r ×1

s4 ×1