0
我試圖記錄與roxygen2引用類方法:參考文件類以及它與roxygen2
結果的?myclass
#' test class
#'
#' @name myclass
#' @export
#' @field x A number
#' @field y A number
#' @method print Print x and y
myclass = setRefClass("myclass",
fields = list(
x = "numeric",
y = "numeric"
))
myclass$methods(
print = function() {
if (.self$x > 10) {
stop("x is too large!")
}
message(paste("x: ", .self$x))
message(paste("y: ", .self$y))
}
)
myclass$methods(
initialize = function(x=NULL, y=NULL, obj=NULL) {
if(is.null(obj)) {
.self$x = x
.self$y = y
}
else {
.self$x = obj$x
.self$y = obj$y
}
}
)
:
test class
Description
test class
Fields
x
A number
y
A number
我有4個問題:
- @name是什麼意思?
- 爲什麼
@methods
指令在這裏沒有效果? @export
和@exportClass
有什麼區別?- 如何記錄方法的參數?
我也試過這樣:
myclass$methods(
#' Print two numbers
#'
#' @param msg A message to prepend
print = function(msg) {
if (.self$x > 10) {
stop("x is too large!")
}
message(paste(msg, .self$x))
message(paste(msg, .self$y))
}
)
,並得到這樣的:
> ?myclass$print
Error in .helpForCall(topicExpr, parent.frame()) :
no documentation for function ‘$’ and signature ‘x = "refObjectGenerator"’
闖闖:
#' test class
#'
#' @name myclass
#' @export
#' @field x A number
#' @field y A number
#' @method print Print two numbers
#' @method initialize Initialize the class
myclass = setRefClass("myclass",
fields = list(
x = "numeric",
y = "numeric"
),
methods = list(
print = function(msg) {
if (.self$x > 10) {
stop("x is too large!")
}
message(paste(msg, .self$x))
message(paste(msg, .self$y))
},
initialize = function(x=NULL, y=NULL, obj=NULL) {
if(is.null(obj)) {
.self$x = x
.self$y = y
}
else {
.self$x = obj$x
.self$y = obj$y
}
}
)
)
仍然沒有運氣。