首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在R- personal preference、命名约定或更多方面,点是什么意思?

在R- personal preference、命名约定或更多方面,点是什么意思?
EN

Stack Overflow用户
提问于 2011-09-23 16:51:28
回答 2查看 29.7K关注 0票数 83

我(可能)指的不是像这里的var1~.那样的“所有其他变量”的意思。我再次被指向plyr,并查看了mlply,我想知道为什么参数定义为这样的前导点:

代码语言:javascript
复制
function (.data, .fun = NULL, ..., .expand = TRUE, .progress = "none", 
.parallel = FALSE) 
{
if (is.matrix(.data) & !is.list(.data)) 
    .data <- .matrix_to_df(.data)
f <- splat(.fun)
alply(.data = .data, .margins = 1, .fun = f, ..., .expand = .expand, 
    .progress = .progress, .parallel = .parallel)
}
<environment: namespace:plyr>

这有什么用呢?这只是个人喜好,命名惯例还是更多?通常,R是如此有效,以至于我错过了一个很久以前就已经做过的技巧。

EN

回答 2

Stack Overflow用户

发布于 2011-09-23 17:15:51

在名称的开头,它的工作方式类似于UNIX文件名约定,默认情况下隐藏对象。

代码语言:javascript
复制
ls()
character(0)

.a <- 1

ls()
character(0)

ls(all.names = TRUE)
[1] ".a"

它可以只是一个没有特殊含义的令牌,它不会比任何其他允许的令牌做更多的事情。

代码语言:javascript
复制
my.var <- 1
my_var <- 1
myVar <- 1

它用于S3方法分派。因此,如果我定义了简单类"myClass“并创建了具有这个类属性的对象,那么像print()这样的泛型函数将自动分派给我的特定print方法。

代码语言:javascript
复制
myvar <- 1

print(myvar)

class(myvar) <- c("myClass", class(myvar))

print.myClass <- function(x, ...) {

    print(paste("a special message for myClass objects, this one has length", length(x)))
    return(invisible(NULL))
}

print(myvar)

S3的语法有一个不明确的地方,因为您不能从函数的名称看出它是一个S3方法,还是名称中的一个点。但是,这是一个非常简单的机制,非常强大。

这三个方面中的每一个都有很多不同之处,您不应该将我的示例视为良好的实践,但它们是基本的区别。

票数 29
EN

Stack Overflow用户

发布于 2019-11-04 23:44:00

如果用户定义了一个函数.doSomething,并且懒于为参数指定所有的roxygen文档,它将不会生成用于编译包的错误

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7526467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档