sampling.sh 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #!/usr/bin/env bash
  2. # File: sampling.sh
  3. # Name: D.Saravanan Date: 26/02/2020
  4. # Bash script to analyse adult.csv data
  5. fname="adult.csv"
  6. min=`cat $fname|grep ^[0-9]|cut -d "," -f 1|sort -n|head -n 1`
  7. max=`cat $fname|grep ^[0-9]|cut -d "," -f 1|sort -n|tail -n 1`
  8. echo "Minimum age : $min"
  9. echo "Maximum age : $max"
  10. echo "Enter class interval : "
  11. read interval
  12. echo "-------------------------------------------------------------------"
  13. printf "%10s\t%10s\t%10s\t%4s\t%10s\t%5s\t%10s\n" "Class" "Freq" "CFreq" "Mean" "Freq*Mean" "Mean^2" "Freq*Mean^2"
  14. echo "-------------------------------------------------------------------"
  15. funct ($m, $nval)
  16. {
  17. sum=0; count=0
  18. for val in `seq $m 1 $nval`
  19. do
  20. sum=`echo "$sum+$val"|bc -l`
  21. count='echo "$count+1"|bc -l`
  22. done
  23. return `echo "scale=4;$sum/$count"|bc -l`
  24. }
  25. cfreq=0
  26. for m in `seq $min $interval $max`
  27. do
  28. incr=`echo "$m+$interval"|bc -l`
  29. if [ $incr -le $max ]
  30. then
  31. # sum=0; nval=`echo "$incr-1"|bc`
  32. # for val in `seq $m 1 $nval`
  33. # do
  34. # sum=`echo "$sum+$val"|bc -l`
  35. # done
  36. # mean=`echo "scale=4;$sum/$interval"|bc -l`
  37. mean=funct ($m, $nval)
  38. freq=0
  39. for n in `cat $fname|grep ^[0-9]|cut -d "," -f 1`
  40. do
  41. if [ $n -ge $m ] && [ $n -lt $incr ]
  42. then
  43. freq=`echo "$freq+1"|bc -l`
  44. cfreq=`echo "$cfreq+1"|bc -l`
  45. fi
  46. done
  47. means=`echo "scale=4;$mean^2"|bc -l`
  48. freqm=`echo "scale=4;$freq*$mean"|bc -l`
  49. freqs=`echo "scale=4;$freq*$means"|bc -l`
  50. echo "[$m $incr) | $freq | $cfreq | $mean | $freqm | $means | $freqs"
  51. fi
  52. if [ $incr -ge $max ]
  53. then
  54. # sum=0; count=0
  55. # for val in `seq $m 1 $max`
  56. # do
  57. # sum=`echo "$sum+$val"|bc -l`
  58. # count=`echo "$count+1"|bc -l`
  59. # done
  60. # mean=`echo "scale=4;$sum/$count"|bc -l`
  61. mean=fucnt ($m, $max)
  62. freq=0
  63. for n in `cat $fname|grep ^[0-9]|cut -d "," -f 1`
  64. do
  65. if [ $n -ge $m ] && [ $n -le $max ]
  66. then
  67. freq=`echo "$freq+1"|bc -l`
  68. cfreq=`echo "$cfreq+1"|bc -l`
  69. fi
  70. done
  71. means=`echo "scale=4;$mean^2"|bc -l`
  72. freqm=`echo "scale=4;$freq*$mean"|bc -l`
  73. freqs=`echo "scale=4;$freq*$means"|bc -l`
  74. echo "[$m $max] | $freq | $cfreq | $mean | $freqm | $means | $freqs"
  75. fi
  76. done