2017-08-25 4 views
-2

Ich bin neu in der Programmierung. Wenn ich meine Daten in R laden Ich finde:Wie kann ich Daten unter Verwendung dieser Bedingungen arrangieren?

>str(g) 
data.frame': 253227 obs. of 2 variables: 

$ ID    : int 7896741 7896743 7896745 7896747 7896749 7896751 7896753 7896755 7896757 7896758 ... 
$ gene_assignment: Factor w/ 85855 levels "","---","AB001736 // IGLJ3 /// AB001733 // IGLJ3 /// ENST00000390609 // IGHV3-23 /// X14584 // IGHV3-23 /// BC072419 // "| __truncated__,..: 16002 81923 16018 2 2 2335 2 2392 5497 5497 ... 
  1. Wie kann ich zwei Kategorien entfernen (""; "---") von $ gene_assignment? Welche Art von Code soll ich verwenden?

  2. “ AB001736 // IGLJ3 /// AB001733 // IGLJ3 /// ENST00000390609 // IGHV3-23 /// X14584 // IGHV3-23 /// BC072419 // "|

Diese Faktoren enthält viele Parameter, aber einige sind wie ENST00000390609 oder AB001733 üblich. Wie kann ich diese Werte entfernen?

+0

Mögliches Duplikat von [Bedingt Datareframe-Zeilen mit R entfernen] (https://stackoverflow.com/questions/8005154/contighende-remove-dataflame-rows-with-r) –

Antwort

0

Ich bin nicht wirklich sicher, was Sie fragen, so kann ich nur interpretieren, was Sie tun möchten. Idealerweise hätte ich einen Kommentar hinterlassen, aber es sagt mir, dass 50+ Reputation nötig ist, um das zu tun.


Also, wenn Sie die die beiden Kategorien Ihrer Faktorvariablen durch fehlende Werte (NAs) ersetzen wollen, dann sollte diese Arbeit:

data.frame$gene_assignment <- ifelse(data.frame$gene_assignment==...,NA,data.frame$gene_assignment) 

wo ... ist der Zielwert oder Kategorie von Ihrer Variablen ist NA der neue Wert (fehlt) und der Rest dient dazu, alle anderen Werte und Kategorien unverändert zu lassen.

Der gleiche Code kann natürlich für Ihr zweites Problem verwendet werden. Geben Sie einfach den Zielwert ein (natürlich 1) und den Wert, mit dem Sie ihn ersetzen möchten.

Sie können auch Attrappen erstellen sehr leicht auf diese Weise, wenn es das ist, was Sie wollen:

data.frame$dummy<-ifelse(data.frame$gene_assignment=...,1,0) 

Wenn Sie Zeilen löschen möchten (listwise) von Ihrem data.frame auf einem bestimmten Wert basiert (zB "---") einer bestimmten Variablen (zB $ gen_assignment), dies: data.frame[!(data.frame$gene_assignment=="---"),] oder dies: subset(data.frame, gene_assignment!="---") sollte den Trick machen. Sie sollten jedoch Ihre NAs beobachten.


In der Hoffnung, das ist hilfreich.

Wenn nicht, und falls ich Ihre Frage falsch interpretierte, schauen Sie sich an, was Sie tun können, um sie zu verbessern, während Sie Fragen schreiben. Details sind der Schlüssel und ein "reproduzierbares Beispiel" (einige exemplarische Daten) erleichtern die Reaktion und führen zu besseren Antworten für Sie (siehe here, here und here).

+0

Außerdem sollten Sie einige Recherchen durchführen, bevor Sie Fragen stellen damit du nicht versehentlich vorhandene duplizierst. Werfen Sie einen Blick auf diesen [Beitrag] (https://stackoverflow.com/questions/31331217/remove-values-in-vector-from-double-variable-in-r) und [dies] (https: // stackoverflow .com/questions/8005154/bedingt-entfernen-Datenrahmen-Zeilen-mit-r) auch. –

+0

@gene: Ich kommentieren hier, weil es mich nicht Schriftsteller unter Ihrer "Antwort" (die ich als "keine Antwort" BTW markiert). ** In Bezug auf Ihre Frage: ** scheint das Problem aufgetreten, wenn Sie versucht haben, Ihre Daten in R zu laden.Stellen Sie sicher, dass Sie das richtige Trennzeichen für Ihre Spalten angeben (wie in der Excel-Tabelle verwendet). Standardmäßig ist dies ",", kann aber auch etwas anderes sein. 'sep =" ... "' wird den Trick machen. Führen Sie '? Read.table' für weitere Informationen zum Laden von Daten aus. Recherchieren Sie auch zu StackOverflow: Es gibt viele Leute, die ähnliche Fragen hatten, viele schlaue Lösungen. –

Verwandte Themen