Сохраняют ли проекты RStudio какие-либо временные данные? - PullRequest
1 голос
/ 08 апреля 2019

Я использую проект RStudio для работы с конфиденциальными данными (т. Е. Проект, связанный с рабочим каталогом, а не с контролем версий).Я хочу поделиться своим сценарием confidential_script.R и проектом confidential_project.Rproj с соавтором без предоставления каких-либо реальных данных , включая временные файлы или метаданные.Я стараюсь не сохранять и не обмениваться файлами .RData.Однако RStudio в Windows автоматически создает скрытую папку .Rproj.user с метаданными проекта.

Могу ли я делиться файлами проекта RStudio без ущерба для какой-либо конфиденциальной информации?

1 Ответ

0 голосов
/ 08 апреля 2019

Лучший способ управлять конфиденциальными зависимостями - это объявить их как объекты R в верхней части скрипта и устранить необходимость совместного использования файлов метаданных, таких как проект R или проект RStudio.

В идеале можно создать тестовую версию конфиденциальной информации, которая содержит случайные / анонимные данные, разработать несколько тестов / отчетов для проверки и включить эти элементы в сценарий R, чтобы другие сотрудники могли убедиться, что он работает доиспользуя это с живыми данными.

Сценарий, параметры, тестовые данные и контрольные примеры делают сценарий полностью воспроизводимым.

Пример: загрузка и объединение файлов статистики покемонов

В следующем примере скрипта загружаются статистические данные для первых семи поколений покемонов и объединяются в один фрейм данных для последующего анализа.,

# name of zip file assigned to theZipFile object
theZipFile <- "https://raw.githubusercontent.com/lgreski/pokemonData/master/pokemonData.zip"

download.file(theZipFile,
              "pokemonData.zip",
              method="curl",mode="wb")
unzip("pokemonData.zip")

thePokemonFiles <- list.files("./pokemonData",
                              full.names=TRUE)
thePokemonFiles 

pokemonData <- lapply(thePokemonFiles,function(x) read.csv(x))

# a list of 7 data frames
summary(pokemonData)

pokemonData <- do.call(rbind,pokemonData)

summary(pokemonData)
...