从R

时间:2018-02-05 09:46:01

标签: r namespaces package zoo

我正在开发一个包,它取决于zoo(在Imports中列出,而不是Depends中的DESCRIPTION

在函数中,我需要通过zoo运算符对二维[对象进行子集化。但是,只要未加载zoo个包,R就会使用基数[,而numeric会返回zoo而不是zoo

标准解决方案是使用zoo::`[.zoo`()的命名空间(如Error: '[.zoo' is not an exported object from 'namespace:zoo')。但是,当我尝试在函数R中执行此操作时抛出错误zoo,因此我得出结论,此运算符未在:::命名空间中导出(即使我可以在https://github.com/rforge/zoo/blob/master/pkg/zoo/NAMESPACE中看到它)。

解决方案1:可以使用zoo运算符来使用包中的非导出函数。可能这不是最佳做法。

解决方案2:我可以使用显式导出的coredataindex创建新的zoo_new <- zoo::zoo(x = zoo::coredata(zoo_old), order.by = zoo::index(zoo_old)),即:

zoo

这不是很优雅。

解决方案3:将ImportsDepends移至DESCRIPTION中的 mAuth.signInWithEmailAndPassword(email, password) .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInWithEmail:success"); FirebaseUser user = mAuth.getCurrentUser(); updateUI(user); } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInWithEmail:failure", task.getException()); Toast.makeText(EmailPasswordActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } // ... } }); 。这也不是最好的做法。

1 个答案:

答案 0 :(得分:0)

我认为你是对的,使用:::不是最佳做法,不允许使用CRAN包。根据这篇文章http://kbroman.org/pkg_primer/pages/depends.html,您应该联系动物园的作者或直接在您的包装内使用他们的功能代码。