Импортировать файл из среды вместо read.table - PullRequest
0 голосов
/ 02 апреля 2019

Я использую пакет другого человека.Как видите, в функции есть термин ImportHistData.Я хочу импортировать файл из окружения под именем rainfall вместо rainfall.txt.Когда я заменяю rainfall.txt на rainfall, я получаю эту ошибку:

Ошибка в read.table (x, header = FALSE, fill = TRUE, na.strings = y): 'file'должна быть символьной строкой или соединением

Итак, чтобы импортировать файл не как текст, каким путем я должен следовать?

Исходная форма функции

DisagSimul(TimeScale=1/4,BLpar=list(lambda=l,phi=f,kappa=k,
                                          alpha=a,v=v,mx=mx,sx=NA),CellIntensityProp=list(Weibull=FALSE,
                                                                                          iota=NA),RepetOpt=list(DistAllowed=0.1,FacLevel1Rep=20,MinLevel1Rep=50,
                                                                                                                 TotalRepAllowed=5000),NumOfSequences=10,Statistics=list(print=TRUE,plot=FALSE),
                 ExportSynthData=list(exp=TRUE,FileContent=c("AllDays"),file="15min.txt"),
                 ImportHistData=list("rainfall.txt",na.values="NA",FileContent=c("AllDays"),
                                     DaysPerSeason=length(rainfall$Day)),PlotHyetographs=FALSE,RandSeed=5)

Источник части ImportHistData в функции

ImportHistDataFun(mode = 1, x = ImportHistData$file, 
                     y = ImportHistData$na.values, z = ImportHistData$FileContent[1], 
                     w = TRUE, s = ImportHistData$DaysPerSeason, timescale = 1)

1 Ответ

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

Сначала проверьте документацию пакета и посмотрите, позволяет ли метод (?DisagSimul) использовать кадр данных в памяти для аргумента ImportHistData вместо чтения из внешнего файла .txt.

Если функция настроена на чтение только файла с диска, и вы не хотите постоянно сохранять фрейм данных rainfall в виде файла, рассмотрите возможность использования tempfile, который существует тольков сеансе R или пока вы не используете unlink():

# INITIALIZE TEMP FILE
tf <- tempfile(pattern = "", fileext = ".txt")    

# EXPORT rainfall to FILE
write.table(rainfall, tf, row.names=FALSE)    
...

# USE TEMPFILE IN METHOD   
DisagSimul(...
           ImportHistData = list(tf, na.values="NA", FileContent=c("AllDays"),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...