了解不同的应用输出
Understanding different sapply output
为什么
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))
return 不同的结果?
谢谢!
您的示例中漏掉了一个逗号,但您可以试试这个:
kappa <- c(0.0001,0.001,0.01,0.1,0.5,0.9,0.99)
sapply (X=kappa, FUN = function (t)t)
sapply 中发生的事情是 "Simplify apply",它将通过 BASE R 自行简化 - 它会尝试找到最佳格式来简化结果,在这种情况下,结果是 kappa 的数量函数
因为结果基于函数 - function(t) t - 这只是 returns t 的值 - 这只是 kappa
然而,当你是 运行 打印语句时,函数 (t) 打印 (t) - 在应用的每个 "step" - 它试图 "simplify" 打印调用- 这就是为什么你一个接一个地得到这个输出:
sapply ( kappa, function (t) t)
也如上述用户评论:
它们是不同的,因为在第二种情况下 print(t) 做了两件不同的事情:它在控制台上打印 t 并 returns t 作为结果。第一个只有 returns 结果,没有打印。所以第二种情况是一样的,你只是看到在 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))
return 不同的结果?
谢谢!
您的示例中漏掉了一个逗号,但您可以试试这个:
kappa <- c(0.0001,0.001,0.01,0.1,0.5,0.9,0.99)
sapply (X=kappa, FUN = function (t)t)
sapply 中发生的事情是 "Simplify apply",它将通过 BASE R 自行简化 - 它会尝试找到最佳格式来简化结果,在这种情况下,结果是 kappa 的数量函数
因为结果基于函数 - function(t) t - 这只是 returns t 的值 - 这只是 kappa
然而,当你是 运行 打印语句时,函数 (t) 打印 (t) - 在应用的每个 "step" - 它试图 "simplify" 打印调用- 这就是为什么你一个接一个地得到这个输出:
sapply ( kappa, function (t) t)
也如上述用户评论:
它们是不同的,因为在第二种情况下 print(t) 做了两件不同的事情:它在控制台上打印 t 并 returns t 作为结果。第一个只有 returns 结果,没有打印。所以第二种情况是一样的,你只是看到在 sapply 完成之前打印的每个项目