MathGroup Archive 2002

[Date Index] [Thread Index] [Author Index]

Search the Archive

Mathematica function writing for data analysis at Gould Academy

  • To: mathgroup at smc.vnet.net
  • Subject: [mg35693] Mathematica function writing for data analysis at Gould Academy
  • From: dresserc at gouldacademy.org (Charles H. Dresser)
  • Date: Fri, 26 Jul 2002 04:16:37 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Hello,
I work at Gould Academy and have recently taught myself some of the
Mathematica scripting language. It has been my job to write functions
which will make analyzing data in Mathematica simpler for the
students. I have written a number of scripts which find different
regressions of data within a file easily. But, a couple of the
functions that I have written are not doing exactly what I want them
to do. One of them takes the input from a file with multiple columns
and what number columns the user wants to be included in the data as
ordered pairs and is suppose to output the ordered pairs which was
selected. What it does is it doesn't output anything but does set list
equal to the data which it should output.  This is the code I have
written (Sorry If It Is Ugly):

f is a filename x is the column which is wanted to be the x value in
the order pairs y is the y value which is wanted to be the ordered
pairs.

  MultCol[f_, x_, y_] := 
  Do[For[i = 1; list = {}; length = Length[Import[f, "Table"]], i <=
length,
        i++,
        list = 
          Append[list, {Part[Part[Import[f, "Table"], i], x], 
              Part[Part[Import[f, "Table"], i], y]}]]
MultColCleanUp[], {1}]

MultColCleanUp[] :=
  If[DigitQ[StringTake[ToString[First[list]], {2}]], list = list,
    list = Rest[list]]

What MultColCleanUp does is if there is a title  in the first part of
the data it removes it from the list.

I would like the students to be able to simply type
MultCol["filename", 1, 3] and have the data in columns 1 and 3 in
"filename" be put together and outputted to the screen in the form of
a matrix.

Also, I have another script I wrote which does relatively the same
thing. What this script is a function which will take a part of data
from a file. It will take data between in the form of ordered pairs in
between the first x value entered and the second value entered. The
Code is:

FilePart[f_, n_, z_] := 
  For[i = 1; list = {}; length = Length[Import[f, "Table"]], i <=
length, i++,
     If[z >= First[Part[Import[f, "Table"], i]] >= n, 
      list = Append[list, Part[Import[f, "Table"], i]];, 
      If[i >= length, list = list]]
    ] 

I would like for the students to be able to simply type
FilePart["filename", 3, 5] and get {{3,78}, {4,56}, {5,90}} as output.
the Y values are just for example purposes.

In both scripts it assigns the value of the data wanted to list, but
does not display list to the screen as an output.

Thank You Very Much! I have been stuck on these two scripts for quite
some time now.


  • Prev by Date: ToExpression
  • Next by Date: Re: Removing the Context
  • Previous by thread: RE: ToExpression
  • Next by thread: Re: Mathematica function writing for data analysis at Gould Academy