我(可能)不是指"所有其他变量",意思就像var1~.这里一样.我plyr再次指出并调查mlply并想知道为什么参数是用这样的前导点定义的:
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>
Run Code Online (Sandbox Code Playgroud)
有什么用?这只是个人偏好,命名惯例还是更多?通常R是如此功能,以至于我错过了以前很久以前完成的技巧.
是否有任何重要的 [1] 理由不导出具有表单名称的函数。fnname在 R 包中?
我知道点前缀变量的主要用途是在使用诸如 之类的函数搜索环境时将变量表示为隐藏ls,并表示对象或列表中的字段应像 S4 .Data 字段一样被视为私有.
test_env <- new.env(parent = emptyenv())
test_env $ .hidden <- 10
ls(test_env)
# character(0)
ls(test_env, all.names = TRUE)
# ".hidden"
Run Code Online (Sandbox Code Playgroud)
据我所知,该约定是在一些实用程序环境搜索函数的级别上执行的,但并未在整个 R 语言中执行。
变量的点前缀是否会改变核心语言特征的行为,如词法范围或各种对象系统,如果是这样,这是否会使导出点前缀函数变得不合适或危险?
感谢您提供的任何帮助或信息。
[1] 意义重大我的意思是非文体;有问题的库使用特殊的前缀和后缀来标记函数类型签名的各个方面,有点像plyr的特殊命名约定。滥用点前缀变量通常是非语义的,但在这种情况下,值得复合含义。
创建对象
.object <- 2
Run Code Online (Sandbox Code Playgroud)
确认对象存在于全局命名空间中
.object
# [1] 2
Run Code Online (Sandbox Code Playgroud)
然而