我正在寻找一位了解R和文件格式/扩展的人。我试图将Excel的某些方向转换为R脚本。我从一个.txt的文件开始,并希望最终得到一个.met文件。但是,使用适当的扩展名编写文件并不一定能使其格式正确。
我认为.met文件对于我正在运行的程序(APSIM)是唯一的。我可以google关于其他.met文件的信息,但它们不是一回事。那么,什么是.met文件?也许你可以告诉我,如果我告诉你它是如何创建的。
在Excel中制作这些文件:
Official Documentation和File Format Description
以下是您的平均会话文件的几行:
year day radn maxt mint rain
() () (MJ/m^2) (oC) (oC) (mm)
1985 1 8.2342 -8.3300 -15.0000 1.27
1985 2 8.5313 -8.3300 -20.5600 0.00
1985 3 7.1630 -5.5600 -18.3300 0.00
1985 4 7.6064 2.7800 -12.7800 0.00
1985 5 7.0866 3.3300 -8.3300 0.00
1985 6 7.5471 6.1100 -1.6700 0.00
1985 7 8.7017 3.3300 -3.3300 0.00
1985 8 7.7457 1.1100 -15.5600 0.00
1985 9 2.7429 -5.0000 -9.4400 1.78
1985 10 5.9049 -5.0000 -12.2200 3.81
一旦我将所有这些数据都放在数据框中,我想要做的就是将它们写成我的程序将识别的格式(.met)。
答案 0 :(得分:1)
我想这可以回答你的问题,你可以在这里使用你的所有标题,不需要单独打开并继续处理。
dat<-read.table(text="year day radn maxt mint rain
() () (MJ/m^2) (oC) (oC) (mm)
1985 1 8.2342 -8.3300 -15.0000 1.27
1985 2 8.5313 -8.3300 -20.5600 0.00
1985 3 7.1630 -5.5600 -18.3300 0.00
1985 4 7.6064 2.7800 -12.7800 0.00
1985 5 7.0866 3.3300 -8.3300 0.00
1985 6 7.5471 6.1100 -1.6700 0.00
1985 7 8.7017 3.3300 -3.3300 0.00
1985 8 7.7457 1.1100 -15.5600 0.00
1985 9 2.7429 -5.0000 -9.4400 1.78
1985 10 5.9049 -5.0000 -12.2200 3.81", header=T)
#Now header with constants
latC=5
tavC=5
ampC=5
header=paste0("weather.met.weather
latitude = ",latC," (DECIMAL DEGREES)
tav = ", tavC," (oC) ! annual average ambient temperature
amp = ",ampC," (oC) ! annual amplitude in mean monthly temperature")
write(header, "met.met") #writing header
write.table(dat, "met.met", append=T, sep=paste(rep(" ",5), collapse=""), row.names=F, quote=F) #appending to that, work with how many spaces you need, I used 5 here
添加“row.names = F”使列号等于列名数
答案 1 :(得分:0)
根据描述和注释,似乎.met
文件只需要比平常更多的空格。这可以通过
write.table(df, file = 'this.met', sep = ' ',
rownames = FALSE, quote = FALSE)
其中sep
包含多个空格以用于更宽的列。很高兴您的修复很简单:)