从环境而不是read.table导入文件

时间:2019-04-02 17:21:23

标签: r

我正在使用其他人的包裹。如您所见,函数中有一个ImportHistData术语。我想从环境以rainfall的名称而不是rainfall.txt的名称导入文件。当我将rainfall.txt替换为rainfall时,出现此错误:

  

read.table(x,header = FALSE,fill = TRUE,na.strings = y)中的错误:   “文件”必须是字符串或连接

那么,要不以文本形式导入文件,应该遵循哪种方式?

函数的原始形状

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 :(得分:0)

首先,检查软件包的文档,看看方法(?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"),