R:如何在不创建对象的情况下为String命名

这个问题在这里已经有了答案:

  • R中“=”和“< - ”之间有什么区别? 6个答案

  • 这是因为<-=不一样。 对于除了在函数调用中使用的每个目的(几乎), <-=是相同的。 如果你想传递一个命名参数,你必须使用= not <-myFunction(X <- expression)将计算expression并将结果保存到(全局)变量X ,并将结果作为myFunction的第一个( 未命名 )参数。 与myFunction(X = expression) ,它将表达式作为指定的 X参数传递给myFunction并且不会创建(全局)变量X

    我的解释有点乱码 - 我强烈推荐阅读?'<-'<-=的帮助文件)更清晰。


    在第一个中:

    args <- list(place <- "Agra", adjective <- "huge")
    

    R在全球环境中评估place <- "Agra" ,返回"Agra" 。 它同样在全球环境中评估adjective <- "huge" ,回归“巨大”。 然后它将结果(“Agra”和“huge”)作为未命名参数放入list()调用中,所以基本上你所做的是

    place <- "Agra"
    adjective <- "huge"
    args <- list("Agra", "huge")
    

    这就是为什么你得到全局变量,而args列表没有名字。 如果这是你想要的,你应该使用长格式而不是简写来写它。 使用第一种形式可能会导致意想不到的或令人困惑的副作用。

    在第二个选项

    args <- list(place = "Agra", adjective = "huge")
    

    它只是简单地通过名为“place”的值为“Agra”的参数和名为“huge”的参数“adjective”。 由于list()使用参数名称作为列表名称,这就是为什么你得到一个命名列表。 而且,这不会创建全局变量的placeadjective

    链接地址: http://www.djcxy.com/p/73847.html

    上一篇: R : how to name String without creating an object

    下一篇: R: Is there any performance difference between using = or <