Zum Inhalt springen

AWK Skript


Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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;

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...