Veröffentlicht 18. August 200718 j Hallo! Ich schreibe gerade an meiner Diplomarbeit und bräuchte eure Hilfe: Ich möchte aus einer Textdatei verschiedene Werte ausgeben lassen: { FS = OFS = "\t" } { print( $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $15, $21, $23, $24, $25, $26) } und anschliessend von einigen nominal skalierten Werten ein Ergebniswert: {ergebnis = $13 + $16 + $17 + $18 + $20 + $22; if (ergebnis > 0) print(" 1 ") else print(" 0 ") } Leider klappt nur der erste Programmteil.. Kann mir jemand bitte helfen? Wäre euch sehr dankbar!!! Viele Grüße Judith
19. August 200718 j Hallo! Ich schreibe gerade an meiner Diplomarbeit und bräuchte eure Hilfe: Ich möchte aus einer Textdatei verschiedene Werte ausgeben lassen: { FS = OFS = "\t" } { print( $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $15, $21, $23, $24, $25, $26) } und anschliessend von einigen nominal skalierten Werten ein Ergebniswert: {ergebnis = $13 + $16 + $17 + $18 + $20 + $22; if (ergebnis > 0) print(" 1 ") else print(" 0 ") } Leider klappt nur der erste Programmteil.. Kann mir jemand bitte helfen? Wäre euch sehr dankbar!!! Viele Grüße Judith Probier mal: ergebnis = ergebnis + $13 + $16 + $17 + $18 + $20 + $22;
19. August 200718 j Hi, was klappt denn nicht? Die Printanweisung? Die Rechnung? Die Abfrage? Btw. das Semikolon wird bei awk nicht verwendet am Ende eines Statements. ciao, vic
19. August 200718 j Dankeschön!! Leider klappt es immer noch nicht ganz... Ich habe das Programm nochmal etwas abgeändert.... In der ersten Zeile sollen die Werte so übernommen werden wie sie da stehen (nur eine Variable soll zusätzlich übernommen werden: Design_flag): { FS = OFS = "\t"; } { for(i=1; i<2;i++) print( $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $15, $21, "design_flag", $23, $24, $25, $26, " "); Dann soll aus der 2.ten Zeile erster Wert, zweiter,... ausgegeben werden (hier werden allerdings nochmal aus der ersten Zeile diesselben werte wie oben entnommen... Warum??): print( $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11); if ($12 == "N") $12 = " 0 "; else $12 = " 1 "; if ($15 == "N") $15 = "0 "; else $15 = "1 "; if ($21 == "N") $21 = "0 "; else $21 = "1 "; print($12, $15, $21); Dann das Ergebnis folgender Berechnung (unter "Design_flag"): if ($13 == "Y" ||$16 == "Y"||$17 == "Y"||$18 == "Y"||$20 == "Y"||$22 == "Y") print("1 "); else print("0 "); und dann die letzten Werte der Zeile: print( $23, $24, $25, $26, " "); } Bis auf die Frage warum dann nochmal die Werte aus der ersten anstatt aus der zweiten Zeile entnommen wurden, scheint das Programm die Werte wenigstens richtig auszugeben... Allerdings erscheint die Darstellung wenn ich die Datei mit SPSS (kennt sich jemand mit dem Programm aus?) öffne völlig falsch... Bis zum $11 übernimmt er die ersten Werte als Variablennamen, die darauf folgenden werden schon als Variablenwerte dargestellt? Obwohl die Variablenbeschriftung in der ersten Zeile natürlich auch bis $26 geht... Vielleicht hat von euch jemand eine Idee? Grüße, Judith
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.