judith1608 Geschrieben 18. August 2007 Geschrieben 18. August 2007 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 Zitieren
lupo49 Geschrieben 19. August 2007 Geschrieben 19. August 2007 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; Zitieren
bigvic Geschrieben 19. August 2007 Geschrieben 19. August 2007 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 Zitieren
judith1608 Geschrieben 19. August 2007 Autor Geschrieben 19. August 2007 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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.