首页 文章

是否有可能只评估一些变量? [关闭]

提问于
浏览
-2

是否有可能只评估一些变量?

t<- function(a,b,c){a+b+c}
t(1,2,c)

这会产生错误

b c中的错误:二元运算符的非数字参数

2 回答

  • 1

    您可以设置一些默认值,这样您就不必输入所有参数 .

    fun <- function(a=0, b=0, c=0){return(a + b + c)}
    fun(1, 2, 3)
    #[1] 6
    fun(4, 5)
    #[1] 9
    fun()
    #[1] 0
    

    请注意,您可能不应该调用函数't',因为已经存在一个名为t的相当重要的函数 .

    我猜你正在努力研究一个稍微复杂的例子 . 否则你可以使用sum来完成这个任务 .


    编辑:似乎您只想通过设置某些参数的值将多参数函数转换为单个参数函数 . 您可以定义一个能够满足您需求的新功能 .

    newfun <- function(c){return(fun(1, 2, c))}
    newfun(1)
    #[1] 4
    newfun(5)
    #[1] 8
    
  • 0
    > t<- function(a,b,c){if(missing(c)) { function(c){a+b+c}} else{a+b+c} }
    > t(1,2)(4)
    [1] 7
    > t(1,2)
    function(c){a+b+c}
    <environment: 0x159956028>
    > t(1,2,3)
    [1] 6
    

相关问题