如何解决返回包中数据集的源文档的功能 不起作用
假设我已经开发了一个软件包。在我的包裹中,我有一个名为df
的数据集,该数据集使用roxygen2进行了记录:
#' Title
#'
#' Description
#'
#' Details
#'
...
...
#' @source La la la.
#' @source Fa fa fa.
...
...
这当然会生成man / df.Rd,其中除其他外还有源代码部分:
...
\source{
La la la.
Fa fa fa.
}
...
现在,我想使用此数据集创建一个简单函数,该函数返回df
的源。我可以从readLines()
中提取,处理并返回源,但是,我不确定如何在此处引用文件路径或如何访问man / df.Rd!
get_source <- function() {
x <- readLines("path_to/df.Rd")
x <- process(x)
x
}
- 如何从包中访问man / df.Rd?
- 从roxygen2文档或生成的.Rd文件中提取源代码是否更简单?
解决方法
您可以使用以下函数来获取@NonNull
@Override
public Single<Result> createWork() {
return Single.create(subscriber -> {
FirebaseFirestore firestore = FirebaseFirestore.getInstance();
firestore.collection("users").document("doc").get()
.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
DocumentSnapshot doc = task.getResult();
if (doc != null && doc.exists() && doc.getData() != null
&& doc.getData().get("lastSeen") != null) {
--> // this is where I log
subscriber.onSuccess(Result.success());
} else {
--> XLog.e("No document found to read from");
subscriber.onError(new Error("Document not found"));
}
} else {
--> XLog.e(task.getException());
subscriber.onError(task.getException());
}
});
});
}
文档:
.Rd
由reprex package(v0.3.0)于2020-09-04创建
这也适用于自定义程序包的源文档。
, user2554330的评论使我使用可用功能进一步探索了机会。通过tools::
。但是,正如他们指出的那样,这变得更加复杂。因此,我探索了不同的途径,并且扭转这种方法变得更加容易和简单。定义一个输出源的函数,然后在roxygen2文档和我想要的函数中使用它。
raw_source <- function(ret) {
sources <- c("La la la.","Fa fa fa.")
sources[match(ret,c("a","b"))]
}
get_source <- function() {
x <- c(raw_source("a"),raw_source("b"))
x <- process(x)
x
}
#' Title
#'
#' Description
#'
#' Details
#'
...
...
#' @source `r get_source("a")`
#' @source `r get_source("b")`
...
...
不起作用
最后发现system.file()
可以访问程序包中的特定目录,而以前没有意识到。
get_source <- function() {
x_path <- system.file("man/df.Rd")
x <- readLines(x_path)
x <- process(x)
x
}
正如user2554330所指出的那样,没有安装man目录,因此以上操作无效。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。