了解不同的输出

时间:2019-01-23 17:37:54

标签: r sapply

为什么

kappa <- c(0.0001,0.001,0.01,0.1,0.5,0.9,0.99)

sapply ( kappa, function (t) t)

sapply ( kappa, function (t) print(t)) 

返回不同的结果?

谢谢!

1 个答案:

答案 0 :(得分:1)

您在示例中错过了逗号,但是您可以尝试以下操作:

kappa <- c(0.0001,0.001,0.01,0.1,0.5,0.9,0.99)

sapply (X=kappa, FUN = function (t)t)

sapply中发生的是“简化应用”,它将简化BASE R的使用-它会尝试找到最佳格式来简化结果,在这种情况下,该结果是该函数的kappa数

由于结果基于函数-function(t)t-这仅返回t的值-仅为

但是,当您运行打印语句时,函数(t)打印(t)-在应用的每个“步骤”中-它试图“简化”打印调用-这就是为什么您在获得此输出之后另一个:

sapply ( kappa, function (t) t) 

也如上述用户所述:

它们是不同的,因为在第二种情况下,print(t)做两件事:在控制台上打印t并返回t作为结果。第一个仅返回结果,不打印。所以第二种情况是一样的,您只是看到每个项目在完成申请之前就被打印了