我正在开发一个包,它取决于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:我可以使用显式导出的coredata
和index
创建新的zoo_new <- zoo::zoo(x = zoo::coredata(zoo_old), order.by = zoo::index(zoo_old))
,即:
zoo
这不是很优雅。
解决方案3:将Imports
从Depends
移至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);
}
// ...
}
});
。这也不是最好的做法。
答案 0 :(得分:0)
我认为你是对的,使用:::
不是最佳做法,不允许使用CRAN包。根据这篇文章http://kbroman.org/pkg_primer/pages/depends.html,您应该联系动物园的作者或直接在您的包装内使用他们的功能代码。