我(可能)不是指"所有其他变量",这里的意思是var1~..

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的功能如此强大,以至于我错过了一个很久以前就做过的把戏.

推荐答案

函数名中的点可以表示以下任意一种:

  • 什么都没有
  • S3方法中方法和类之间的分隔符
  • 隐藏函数名

Possible meanings

1.什么都没有

除了视觉上的区别,data.frame中的圆点并没有将dataframe分开.

2.S3方法中方法和类的分离

plot是通用S3方法的一个示例.因此,plot.lmplot.glm是调用plot(lm(...))plot(glm(...))时使用的底层函数定义

3.隐藏内部功能

在编写软件包时,有时在函数名中使用前导点很有用,因为这些函数在总体视图中有些隐藏.纯在包内部的函数有时会使用此选项.

在这种情况下,"稍微隐藏"只是意味着当你用ls()列出对象时,变量(或函数)通常不会出现.要强制ls显示这些变量,请使用ls(all.names=TRUE).通过使用点作为变量的第一个字母,可以更改变量本身的范围.例如:

x <- 3
.x <- 4

ls()
[1] "x"

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

x
[1] 3
.x
[1] 4

4.其他可能的原因

在Hadley的包中,他使用约定在函数名中使用前导点.这是一种机制,用于try 并确保在解析变量名时,值解析为用户变量,而不是内部函数变量.


Complications

这种不同用途的混搭会导致非常混乱的情况,因为这些不同的用途可能会在同一个函数名中混淆.

例如,要将data.frame转换为列表,可以使用as.list(..)

as.list(iris)

在本例中,as.list是一个S3通用方法,您将向其传递data.frame.因此,S3函数被称为as.list.data.frame:

> as.list.data.frame
function (x, ...) 
{
    x <- unclass(x)
    attr(x, "row.names") <- NULL
    x
}
<environment: namespace:base>

看看软件包的功能,看看data.table:

> library(data.table)

> methods(as.data.table)
[1] as.data.table.data.frame* as.data.table.data.table* as.data.table.matrix*    

   Non-visible functions are asterisked


> data.table:::as.data.table.data.frame
function (x, keep.rownames = FALSE) 
{
    if (keep.rownames) 
        return(data.table(rn = rownames(x), x, keep.rownames = FALSE))
    attr(x, "row.names") = .set_row_names(nrow(x))
    class(x) = c("data.table", "data.frame")
    x
}
<environment: namespace:data.table>

R相关问答推荐

如何正确使用' programme::programme_bar$Message()'?

当y大于阈值和值范围时,在时间序列中突出显示区域

如何判断R中一列的值是否在所有其他列中重复?

使用Shiny组合和显示复制和粘贴的数据

跨列应用多个摘要函数:summerise_all:列表对象无法强制为double类型'

基于shiny 应用程序中的日期范围子集xts索引

R创建一个数据透视表,计算多个组的百分比

在(g)子中使用asserable字符

查找图下的面积

获取列中值更改的行号

如何调整曲线图中的y轴标签?

使用across,starts_with和ifelse语句变更多个变量

如何从R ggplot图片中获取SVG字符串?

使用shiny 中的所选要素行下拉菜单

我如何使用循环来编写冗余的Rmarkdown脚本?

计算使一组输入值最小化的a、b和c的值

在r中整理图例和堆叠图的问题

抽样变换-REXP与RWEIBUR

使用同一行中的前一个值填充R矩阵中的缺失值

我已经运行了几个月的代码的`Palette()`中出现了新的gglot错误