Как динамически изменять имена внутри для l oop в usethis :: use_data () R - PullRequest
0 голосов
/ 30 января 2020

Я впервые создаю пакет R. Я пытаюсь включить 39 различных наборов данных в предварительно загруженные данные для моего пакета. Однако функция usethis :: use_data (), которая создает файлы .rda, принимает только имя без кавычек, а не переменную. Поэтому data = dynamic_name_from_for_l oop

продолжает создавать файл data.rda вместо dynamic_name_from_for_l oop .rda

library(usethis)
library(readtext)
library(tidyverse)

site_list = c('0034L','0081L','0089L','0166L','0220R','0236L','0307R',
              '0333L','0414R','0434L','0445L','0450L','0476R','0501R','0515L',
              '0566R','0629R','0651R','0688R','0701R','0817L','0846R','0876L',
              '0917R','0938L','1044R','1194R','1227R','1233L','1377L','1396R',
              '1459L','1726L','1833R','1946L','2023R','2133L','2201R','2255R')


for (i in 1:length(site_list)){
  sitename = site_list[i]
  filename = paste0('M:/Tools/GCsandbar/data-raw/',sitename,"sd.csv")
  data = read.csv(filename, header = T)
  df_name = paste0('RC',sitename,'sd')
  assign(df_name,data)
  usethis::use_data(data,name = df_name, overwrite = TRUE)
  #file.rename(from = 'data/data.rda',to = paste('data/',df_name,'.rda')) ## this did not work
}

. Это просто создает 39 экземпляров df_name.rda, перезаписывая предыдущий один раз вместо создания RC0034L.rda, RC0081L.rda, ....

1 Ответ

0 голосов
/ 30 января 2020

В l oop значение use_data можно изменить на use_data_raw

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