我拥有的数据包括地点名称和 4 个天气参数的风险等级(从 1 到 4),这 4 个参数分别是 1)24 小时降雨量、2) 5 天总降雨量、3) 最低温度和 4) 最高温度。一天中,所有四个参数的风险等级只能为 1(无风险),在这种情况下无需处理。或者可以处理 1、2,最多 4 个。
我能够确定是否不需要处理(即所有地方的风险级别为 1)。
下面给出了一个数据样本__DATA__
。
我能够确定有多少天气因素的风险级别高于 1(从文件头),因此能够@Riskarray
根据该头创建一个数组。
我想做的是将每一行拆分,并为每个天气元素写入单独的文件,两列(位置和风险值)。这类似于如何在第一次出现数字时拆分字符串,对此我得到了非常有帮助的帮助。
在下面的代码片段中,我不知道while
语句之后该如何进行。
#!/usr/bin/perl -w
use strict;
use warnings;
my @RiskArray=("H1dR", "H5dR", "Tmin", "Tmax");
my $arraynum=scalar @RiskArray;
my $hdr=<DATA>;
for my $i (0..$#RiskArray){
while (my $line = <DATA>){
}
}
__DATA__
Risk H1dR H5dR Tmin Tmax
Maputsoe, 2, 1, 3, 2
Butha-Buthe (Butha-Buthe District), 4, 3, 2, 1
Mohale's Hoek, 2, 2, 3, 4
Qacha's Nek, 2, 3, 1, 2
示例输出将为四个文件,例如文件“H1dRrv.txt”将包含
Maputsoe, 2
Butha-Buthe (Butha-Buthe District), 4
Mohale's Hoek, 2
Qacha's Nek, 2
和H5dRrv.txt
Maputsoe, 1
Butha-Buthe (Butha-Buthe District), 3
Mohale's Hoek, 2
Qacha's Nek, 3
我能够从您的数据帖子中获得结果。
创建的文件为: