查找特定时间间隔内列数据的平均值

时间:2016-09-26 17:25:37

标签: ubuntu awk numerical-methods

我发现var ProductTable = React.createClass({ render: function() { var rows = []; var lastCategory = null; this.props.products.forEach(function(product) { if (product.category !== lastCategory) { rows.push(<ProductCategoryRow category={product.category} key={product.category} />); } rows.push(<ProductRow product={product} key={product.name} />); lastCategory = product.category; }); // return table 可以用来查找here中列的平均值。假设我想计算第二列的平均值,但只计算特定行之间的元素(例如,从第2行到第6列)。怎么做?

3 个答案:

答案 0 :(得分:2)

$ awk '$2>=2 && $2<=6 {sum+=$2; count++} 
                  END {print (count?sum/count:"N/A")}' file

答案 1 :(得分:1)

我找到了解决方案。 awk的参数FNR表示通常表示行号的记录数。在karakfa的solution上使用它:

awk 'FNR>=2 && FNR<=6 {sum+=$2; count++} 
   END {print (count?sum/count:"N/A")}' file

答案 2 :(得分:0)

尝试:

Pattern pattern = Pattern.compile("<([^>]+)>([^<]*)</[^>]+>");
try (Stream<String> stream = Files.lines(Paths.get(filePath))) {
    stream.forEach(
        line -> {
            System.out.println(line);
            Matcher matcher = pattern.matcher(line);
            while (matcher.find()) {
                System.out.printf("%s: %s ", matcher.group(2).trim(), matcher.group(1));
            }
            System.out.println();
        }
    );
}

说明:

$ awk -v s=2 -v e=6  '{if(($2>=s)&&($2<=e)){sum+=$2;n++}}END{print (n!=0)?sum/n:0}' input.txt

希望它有所帮助!