I have a comment: be careful if your input file is truely a csv file. If 
the file is generated by some other program (not sure what SPSS is), 
then, in my experience, csv can be more complicated than you might 
expect (it can add quotes around the fields and escape various 
character/etc/etc).

In my experience, it's better to use a perl module to read the csv file 
and work on it from there.

I recommend at least looking into whether this might be a problem for you.

<http://en.wikipedia.org/wiki/Comma-separated_values>

"Fields that contain a special character (comma, newline, or double 
quote), must be enclosed in double quotes. However..."

Thanks,

Max.
PS. Sorry that I'm replying to the wrong person...

Mansour Al Akeel wrote:
> I am not sure if this will do it for you.
>
> cat sample.txt | tr ',' '.' | awk '{ out="fl_gr"$1"mw.txt" ; if ($2 ==
> 2) out="fl_gr"$1"wm.txt" ; $1=$2=""; print  $0 > out}'
>
>
>
>
> On Wed Jan 14,2009 06:01 pm, Linus Neumann wrote:
>   
>> Dear all,
>>
>> to continue with my diploma thesis, I have a particular problem to  
>> solve and I believe that VIM-scripting might be the most convenient  
>> way to do so - please correct me, if I am wrong.
>>
>> I have no more than very basic programming or scripting skills, so I  
>> will have to rely on your generous help to finish my research. In the  
>> publication I will of course officially thank whoever helped me to  
>> solve the problem.
>>
>> As for the problem:
>>
>> What needs to be done? (irrelevant background)
>> Data from SPSS needs to be converted into a .txt-Format that fits the  
>> conventions of a particular R-script.
>> SPSS-data can be provided either as tab-delimited .dat- or semicolon- 
>> seperated .csv-file - one of these should be the used by the VIM-script.
>>
>> What is the script supposed to do? (relevant)
>> The .dat or .csv file needs to be split up into seperate .txt-Files,  
>> based on certain variables, that are contained in the .dat/.csv-file.
>>
>> Here for a (shortened) example:
>>
>> .dat-file might look like this:
>>
>> 1    1       6,83333333333333        5,66666666666667        
>> 5,91666666666667        
>> 1    1       4,75    6,33333333333333        5,25    6       
>> 6,33333333333333        
>> 1    1       4,91666666666667        4,66666666666667        6,08333333333333
>> 1    2       6,08333333333333        5,33333333333333        5       
>> 1    2       4,58333333333333        4,91666666666667        5,41666666666667
>> 1    2       4,33333333333333        3,5     5       5,16666666666667
>> 2    1       ....
>> 2    2       ....
>> 3    1       ....
>> 3    2       ....
>>
>> The relevant information for splitting the file are the first 2  
>> variables.
>> The result of the script should be seperate files, each with the  
>> following contents:
>>
>> File fl_gr1mw.txt
>> 6.83333333333333     5.66666666666667        5.91666666666667        
>> 4.75 6.33333333333333        5.25    6       6.33333333333333        
>> 4.91666666666667     4.66666666666667        6.08333333333333
>>
>> File fl_gr1wm.txt
>> 6.08333333333333     5.33333333333333        5       
>> 4.58333333333333     4.91666666666667        5.41666666666667
>> 4.33333333333333     3.5     5       5.16666666666667
>>
>> File fl_gr2mw.txt
>> ....
>>
>> File fl_gr2wm.txt
>> ....
>>
>> File fl_gr3mw.txt
>> ....
>>
>> File fl_gr3wm.txt
>> .... (Contents following the 3 2 combination)
>>
>> and so on
>>
>> To sum it up:
>> - Var 1 is the file number: fl_grVAR1
>> - Var 2 determines mw/wm: fl_grVAR1VAR1.txt
>> - File should only contain data for the corresponding VAR1/VAR2- 
>> combination, yet not VAR1 & VAR2
>> - Attention:
>>      - lines are much longer (not only five, but ranges of 13 to 18  
>> variables per line - script should adjust to that)
>>      - script needs to be run on a total of 1800 lines in 6 seperate  
>> files, each having different numbers of variables - so it should be  
>> fairly adjustable. By the way: Now you see why I need a script to do  
>> this)
>>      - if possible, tabs (.dat) or semicolons (CSV) should be converted to  
>> simple single space ( ) (Probably I can find a way for SPSS to do this  
>> in the first place)
>>      - if possible, commas (,) should be converted to dots (.) (Probably I  
>> can find a way for SPSS to do this in the first place)
>>
>> So, this is it already!
>>
>> For all I know this is just a couple of loops and if-thens - yet a lot  
>> of KNOW-HOW, which I lack.
>> So, if anyone has the time, I would greatly appreciate your help.
>>
>> Thank you VERY much,
>>
>> Linus Neumann, Humboldt-University of Berlin
>>
>>     
>
> >
>   


--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Reply via email to