вычисление среднего количества файлов

Я хотел бы рассчитать среднее значение для данных в нескольких файлах: (около 10 файлов). Допустим, у меня есть file1.dat, file2.dat, file3.dat и ... file10.dat. Каждый файл содержит два столбца. «Первый столбец - номер строки», а « второй столбец - это данные ». В общей сложности у меня есть 1800 строк в файле. Структура данных приведена ниже:

    1.00   0.659
    2.00   0.608
    3.00   0.578
    4.00   0.557
    5.00   0.543
    6.00   0.527
    7.00   0.514
    8.00   0.502
    9.00   0.489
    . 
    .
    .
 1800.00   0.480

Я хочу рассчитать среднее значение для данных в соответствии с номерами строк из каждого файла. Это означает, что я хочу найти среднее значение для всех данных первой строки из file1, file2 ... и file10 и записать в новый файл . Затем среднее значение для всех вторых данных линии из файла1, file2 ... и file10 и записи в том же новом файле .

Этот новый файл должен иметь формат, как показано ниже. Например;

    1.00   0.112
    2.00   0.324
    3.00   0.887
    . 
    .

Где первый столбец - номер строки, а второй столбец - средние значения для данных. Я объясню детали бит для ясности. В приведенном выше примере 0.112 является средним для всех данных в первой строке из каждого файла. И 0.324 - среднее значение для всех данных во второй строке из каждого файла.

Мне нужен код, который может выполнить этот расчет.

Я попытался с perl для открытия файла. Но он потерялся, пытаясь понять, чтобы преобразовать идею в код. Перл, который я написал, ниже

#!/usr/bin/perl -w

open (FILE, "file1.dat") or die $!;
while () {
chomp;
print "$_\n";
}
close (FILE);

Заранее спасибо.

6
nl ja de

3 ответы

Я почти забыл о скриптах bash. но я думаю, вы можете сделать что-то подобное.

files=(file1 file2 file3 file4)
for i in `seq  4`
do
  j=$(($i-1))
  f[$j]=`cat ./temp/${files[$i]} | awk '{print $2}' `
done

for i in `seq 0 1799`
do
  sum=0
  rowValue=0
  for j in `seq 0 3`
  do
    fileContent=(${f[$j]})
    rowValue=`echo ${fileContent[$i]} `
    sum=$(($sum + $rowValue))    
  done
  echo "sum is" $i $sum
done
1
добавлено

Откройте все входные файлы в отдельных файлах и откройте выходной файл. Выполните цикл, считывающий строку из каждого входного файла, добавляя все значения вместе и делясь на количество файлов и записывая результаты в выходной файл.

0
добавлено

вы спрашивали о руководстве, а не о кодах, затем я мог рассказать свою идею с gawk.

gawk has ARGC and ARGIND and ARGV which you could use to identify which file. and for each file each line save data, or only the data you need into a 2-d array. like array[file,line]

наконец, в блоке END вы выполняете цикл и средний расчет, печатаете результат

если вы не знаете об awk, вы тоже можете применить эту идею в python, я думаю (не уверен) perl тоже должен работать с этим.

Надеюсь, поможет.

0
добавлено
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Modern::Perl
Modern::Perl
362 участник(ов)

Пожалуйста, представьтесь при добавлении в группу. Это необходимо во избежание спам-ботов. Ваше первое сообщение не должно быть ссылкой или репостом. Мы всегда рады нестандартным вопросам.

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community

use Perl or die;
use Perl or die;
164 участник(ов)

Группа о языке Perl и обо всём что с ним связано.

pro.bash
pro.bash
123 участник(ов)

All about Nix shells, signals, processes and development in general.

pro.perl
pro.perl
22 участник(ов)

Язык программирования Perl