[英]Load .Rdata in User defined R package
我正在构建自己的R包,并且有一个需要程序访问的参考数据框。 它不是很大,需要用户提供的字符串来搜索适当的数据。
本质上,我有一个带有1个数据帧的.Rdata文件。 我已将文件存储在package文件夹的/ Rpackage_name / data /目录中。
我想让程序包加载数据或访问其内容。 这就是让我困惑的地方。
我究竟做错了什么?
GenericPackageName <- function () {
#data("GenericPackageName") did not work
}
如果它确实不大,则将其放入代码中。 这是怎么做。 将数据加载到R中,然后使用sink()
函数将输出重定向到文件,然后使用dput()
函数创建用于创建对象的R代码。 假设您的数据集称为iris
,则方法如下:
data(iris)
sink("/tmp/iris.R")
dput(iris)
sink(NULL)
system("cat /tmp/iris.R")
# structure(list(Sepal.Length = c(5.1, 4.9, 4.7, 4.6, 5, 5.4, 4.6,
# 5, 4.4, 4.9, 5.4, 4.8, 4.8, 4.3, 5.8, 5.7, 5.4, 5.1, 5.7, 5.1,
# ...
# 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
# 3L), .Label = c("setosa", "versicolor", "virginica"), class = "factor")), .Names = c("Sepal.Length",
# "Sepal.Width", "Petal.Length", "Petal.Width", "Species"), row.names = c(NA,
# -150L), class = "data.frame")
然后将以下代码包含在您的软件包中:
mydata <- structure(list(Sepal.length = ...
您可以dump
其dump
到R文件中,然后将该文件放入R
文件夹中。 将包添加到搜索列表后,将获取文件并创建对象。
这是一个例子
## create some data in a fresh R session
> ls()
# character(0)
> d <- data.frame(x = 1:5, y = letters[1:5])
> save.image()
## load the data into R
> load(".RData", verbose = TRUE)
#Loading objects:
# d
# .Random.seed
## dump it into "newData.R" then source it
> dump("d", "newData.R")
> source("newData.R")
> ls()
# "d"
看一下dump
作用
> cat(readLines("newData.R"))
# d <- structure(list(x = 1:5, y = structure(1:5, .Label = c("a", "b",
# "c", "d", "e"), class = "factor")), .Names = c("x", "y"),
# row.names = c(NA, -5L), class = "data.frame")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.