Filter-out-Werte, die niedriger ist als eine Schwelle aus einer CSV-Datei
Meine CSV-Datei (tab getrennt), und ich versuche, heraus zu filtern, die p-Werte, die größer sind als 0.05
(in einer anderen Weise, ich will, dass die Einträge mit p <= 0.05
). Die p-Werte sind in der 7. Spalte, und ich habe versucht, die folgenden:
awk '$7 <= 0.05 {print $0}' rawFile.csv > filteredFile.csv
Aber das filtern funktioniert nicht, es gibt die Datei ohne Filterung.
Die p-Werte in der column #7
sind so etwas wie dieses: 0.33532935, 0.0, 0.8591287
Ihre Logik gehört innerhalb der geschweiften Klammern
Nein. Das awk-code ist in Ordnung. Können Sie uns einige vollständige Beispiel-input-Zeilen?
versuchen
Wenn das file ist tab-getrennt, sagen awk:
Nein. Das awk-code ist in Ordnung. Können Sie uns einige vollständige Beispiel-input-Zeilen?
CSV file is tab delimited
??!! Sind Sie sicher? CSV steht für Comma Separated Value, also Trennzeichen wird angenommen, dass ,
standardmäßig. Können Sie uns zeigen, ein Beispiel für eine Datei? Wenn meine Vermutung korrekt ist, müssen Sie möglicherweise awk -F,
versuchen
awk '{ print $7 }' rawFile.csv | more
um sicherzustellen, dass Sie tatsächlich abrufen der rechten Spalte. Dann spielen Sie mit -F'x'
(x als Trennzeichen) und sehen, ob es hilft.Wenn das file ist tab-getrennt, sagen awk:
awk -F '\t' '$7 <= 0.05' raw
. Wenn jeder von $1 bis $6 Leerzeichen enthält, dann wirft Sie Ihr Feld Nummerierung, da das Standard-Feldtrennzeichen ist "whitespace".InformationsquelleAutor TonyGW | 2013-11-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese:
Die BEGIN-Klausel gibt Ihnen einen Platz zum ändern der Standard-Feldtrennzeichen (FS) zu einem tab-Zeichen ('\t'). Das funktioniert nicht in älteren Versionen von awk (und glotzen könnte eine hilfreiche alternative).
Die Haupt-Logik passiert in den zweiten Satz von geschweiften Klammern ... wo werden Sie sagen, zu drucken, die Zeile, wenn in Spalte 7 ist <= 0.05.
\t
wird von der shell interpretiert, nicht von awk. Es wird dahert
(versuchenecho \t
) wenn Sie mir nicht glauben :). Es ist auch völlig unnötig, zu verwendenif
hier - die Struktur eines awk-Skript istcondition { action }
. Der beste Weg, um das Feld Trennzeichen ein tab-Zeichen verwendenawk -F '\t'
.InformationsquelleAutor mclaugpa