首页 > 解决方案 > 从环境而不是 read.table 导入文件

问题描述

我正在使用其他人的包裹。如您所见,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)

标签: r

解决方案


首先,检查包的文档并查看方法 ( ?DisagSimul) 是否允许将内存中的数据帧用于ImportHistData参数,而不是从外部 .txt 文件中读取。

如果该函数设置为仅从磁盘读取文件并且您不想将降雨数据帧永久保存为文件,请考虑使用tempfile仅存在于 R 会话中的 a 或直到您使用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"),

推荐阅读