最近,我们的讲师向我们介绍了R中的申请家庭。 当我查看我的笔记时,我很困惑一部分关于sapply与vapply的应用,因为讲师表示它们基本相同。
我对sapply的理解是它试图简化它提供的参数并将其返回给用户。但是,由于输入向量具有可变长度,因此它并不总是返回简化值(我没有完全理解这一点)。然而,sapply不会指出这一点。
但是,使用vapply,如果不知道因为它会抛出错误消息并且你必须指定一个返回类型值,那么你就不会冒不得简化向量的风险。
在这种情况下,我的理解是vapply将是sapply的首选选项,因为它是更安全的选项。我问我的导师是否是这种情况,他说这一切都取决于个人喜好。
这是真的吗 - vapply和sapply本质上是相同的功能,除了一个比另一个更安全的故障安全?或者是否存在某些情况,您希望明确使用vapply而不是sapply,反之亦然?
我已阅读以下内容,这有助于从绩效角度阐明差异: Why is `vapply` safer than `sapply`?
编辑:我已经重新阅读了为什么是vapply-safer-than-sapply链接,但我不认为我完全可以解决这个问题。我的问题仍然存在,是否有一种情况下,sapply比
谢谢。