Как вывести список и удалить lazyData из пакета R? - PullRequest
0 голосов
/ 15 января 2019

Я хочу написать пакет с внутренними данными, и мой метод заключается в следующем: здесь

Мой файл ОПИСАНИЕ:

Package: cancerProfile
Title: A collection of data sets of cancer
Version: 0.1
Authors@R: person("NavyCheng", email = "navycheng2020@gmail.com", role = c("aut", "cre"))
Description: This package contain some data sets of cancers, such as RNA-seq data, TF bind data and so on.
Depends: R (>= 3.4.0)
License: What license is it under?
Encoding: UTF-8
LazyData: true

и мой проект выглядит так:

cancerProfile.Rproj
NAMESPACE
LICENSE
DESCRIPTION
R/
data/
 |-- prad.rna.count.rda

Затем я устанавливаю пакет и загружаю его:

> library(pryr)
> library(devtools)
> install_github('hcyvan/cancerProfile')
> library(cancerProfile)
> mem_used()
82.2 MB
> invisible(prad.rna.count)
> mem_used()
356 MB
> ls()
character(0)
> prad.rna.count[1:3,1:3]
                   TCGA.2A.A8VL.01A TCGA.2A.A8VO.01A TCGA.2A.A8VT.01A
ENSG00000000003.13             2867             1667             3140
ENSG00000000005.5                 6                0                0
ENSG00000000419.11             1354              888             1767
> rm(prad.rna.count)
Warning message:
In rm(prad.rna.count) : object 'prad.rna.count' not found

У меня вопрос , почему я не могу 'ls' и 'rm' prad.rna.count и как я могу это надеть?

1 Ответ

0 голосов
/ 15 января 2019

В вашем случае вы не могли ls() или rm() набор данных, потому что вы никогда не помещали его в свою глобальную среду. Учтите следующее:

# devtools::install_github("hcyvan/cancerProfile")
library(cancerProfile)
library(pryr)
mem_used()
#> 31.8 MB
data(prad.rna.count)
mem_used()
#> 32.2 MB
ls()
#> [1] "prad.rna.count"
prad.rna.count[1:3,1:3]
#>                    TCGA.2A.A8VL.01A TCGA.2A.A8VO.01A TCGA.2A.A8VT.01A
#> ENSG00000000003.13             2867             1667             3140
#> ENSG00000000005.5                 6                0                0
#> ENSG00000000419.11             1354              888             1767
mem_used()
#> 305 MB
rm(prad.rna.count)
ls()
#> character(0)
mem_used()
#> 32.5 MB

Создано в 2019-01-15 пакетом Представить (v0.2.1)

Поскольку я использовал data() вместо invisible(), я фактически поместил данные в глобальную среду, что позволило мне просмотреть их с помощью ls() и удалить их с помощью rm(). Способ загрузки данных (data()) не увеличил использование памяти, поскольку он просто возвращает обещание, но когда я оценил обещание с помощью prad.rna.count[1:3,1:3], использование памяти возросло. К счастью, поскольку у меня было имя, указывающее на объект с использованием data() вместо invisible(), когда я использовал rm(prad.rna.count), R обнаружил, что имя, указывающее на этот объект, больше не было, и освободил память. Я бы проверил http://adv -r.had.co.nz / memory.html # gc и http://r -pkgs.had.co.nz / data.html # data- данные для более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...