2016-03-24 8 views
0

Ich extrahierte Informationen aus einer CSV-Datei in eine Tabelle und muss ein Barplot aus einer der Zeilen machen.R erhalten nur 3 verschiedene Strings aus mehreren Kombinationen

Diese Zeile hat 3 verschiedene Zeichenfolgen, aber es kann mehr als 1 Zeichenfolge in jeder Zeile enthalten. Nehmen wir das als Beispiel:

Row1 | Reihe2 | RowIWant | RowEtc ...

Daten | Daten | A | Daten ...

angenommen, A, B und C sind Text und nicht nur ein Zeichen. Ich möchte einen Barplot nur mit A, B und C machen und nicht mit allen 6 möglichen Kombinationen.

Im Moment der Bar Grundstück kommt wie diese BarPlot

ich es nur die 3 verschiedenen Strings anstelle der 6 bar zeigt im Moment haben wollen. Ist das erreichbar? Tut mir leid, wenn es schon beantwortet wurde, aber ich konnte nichts finden, was ruhig war, was ich wollte.

Auch wichtig, ich bin neu auf R und das ist eine Schule Arbeit! Wenn mehr Informationen benötigt werden, sag einfach.

Vielen Dank im Voraus

dput() der Daten mit Ich arbeite

Struktur (c (2L, 2M, 2L, 1L, 3L, 3L, 4L, 2L, 2M, 2L, 4L, 2L, 2L, 4L, 2L, 4L, 2L, 4L, 2L, 2L, 2L, 6L, 4L, 2L, 2L, 2L, 5L, 2L, 4L, 4L, 2L, 2L, 2L, 2L, 5L, 4L, 4L, 4L, 5L, 2L, 2L), .Label = c ("", "Pessoal", "Pessoal, Outros", "Pessoal, Profissional", "Pessoal, Profissional, Outros", "Profissional"), Klasse = "Faktor")

Wie Sie sehen können, habe ich 6 Einträge auf Label und ich möchte nur 3 haben! Aber ich möchte sie nicht löschen, ich möchte sie zählen. Zum Beispiel zählt der Eintrag "Pessoal, Profissional" als 1 für "Pessoal" und 1 für "Profissional".

+0

Bitte zeigen Sie Ihre Eingabe ('dput (your_data)') und die gewünschte Ausgabedaten.Frame. "Zeilen aus einem data.frame entfernen" könnte ein Google-Suchbegriff sein. – Jimbou

+0

@Jimbou Edited meine Antwort ... sehen, ob es besser darstellt, was ich will! Mit "gewünschter outpud data.frame" meinen Sie, wie die Struktur aussehen soll? – AimForNuts

Antwort

0

Wie ich Sie richtig verstehe, wollen Sie jedes Wort einzeln zählen. Daher würde ich verschiedene stringr Funktionen verwenden, um die Worte zu spalten:

d <- structure(c(2L, 2L, 2L, 1L, 3L, 3L, 4L, 2L, 2L, 2L, 4L, 2L, 2L, 4L, 2L, 4L, 2L, 4L, 2L, 2L, 2L, 6L, 4L, 2L, 2L, 2L, 5L, 2L, 4L, 4L, 2L, 2L, 2L, 2L, 5L, 4L, 4L, 4L, 5L, 2L, 2L), .Label = c("", "Pessoal", "Pessoal, Outros", "Pessoal, Profissional", "Pessoal, Profissional, Outros", "Profissional"), class = "factor") 
library(stringr) 
d1 <- str_trim(unlist(str_split(d,","))) 

und zeichnen die Zählungen

barplot(table(d1[d1 != ""])) 

enter image description here

+0

Genau das suche ich! Wird ein bisschen mehr über stringr lesen. Gibt es Unterlagen, die Sie empfehlen? Danke für die Antwort !! – AimForNuts

+0

Das ist genug: https://cran.r-project.org/web/packages/stringr/vignettes/stringr.html. Alternativ können Sie die Basis R 'strsplit' und' gsub' verwenden, um Leerzeichen zu teilen und zu entfernen. – Jimbou

+0

Ok, ich schaue mir beide Wege an! Nochmals vielen Dank für die Antwort – AimForNuts

Verwandte Themen