2016-03-24 8 views
0

.csvファイルから情報を抽出して、テーブルの1つからバープロットを作成する必要があります。Rは複数の組み合わせから3つの異なる文字列を取得します

この行には3つの異なる文字列がありますが、各行には1つ以上の文字列を含めることができます。これを例として考えてみましょう:

Row1 | Row2 | RowIWant | RowEtc ...

data |データ| |データ...

  B 
      C 
      A, B 
      A, B, C 

とすると、A、B、Cはテキストであり、文字のみではありません。私は、A、B、Cだけのバープロットを作成し、6つの可能な組み合わせすべてではないようにしたい。

今バープロットは、私はそれだけで3つの異なる文字列の代わりに、現時点で示す6つのバーを持ちたい、この BarPlot

のようにしています。これは達成可能ですか?申し訳ありませんが、既に回答があっても、私が望むものは静かなものは見つかりませんでした。

私はRで新しく、これは学校の仕事です!もっと情報が必要な場合は、ちょうど言う。私は

構造(C(2L、2L、2L、1L、3L、3L、4L、2L、2L、で働いているデータの予め

おかげ

dput() 4L、2L、2L、2L、4L、2L、2L、2L、5L、2L、4L、 4L、2L、2L、2L、2L、2L、2L、2L、 「Pessoal」、「Pessoal、Profissional」、「Pessoal、Profissional、Outros」、「Pessoal」、「Pessoal」、「Professal」、「Pessoal」、「Professal」) "Profissional")、class = "factor")

ご覧のとおり、ラベルには6件のエントリーがあり、私は3つしか持ちません!しかし、私はそれらを削除したくない、私はそれらを数えたい。たとえば、 "Pessoal、Profissional"というエントリは、 "Pessoal"の場合は1、 "Profissional"の場合は1とカウントされます。

+0

をプロットします。そのため、私は言葉を分割するために、異なるstringr機能を使用します出力データ。フレーム。 「data.frameから行を削除する」は、Googleの検索語句になります。 – Jimbou

+0

@ジンボウ私の答えを編集しました。 "desired outpud data.frame"とは、構造をどのように見せたいかということです。 – AimForNuts

答えて

0

あなたが正しいと理解しているように、各単語だけを数えたいと思っています。あなたの入力を示し、( `dput(your_data)`)と、希望してください

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,","))) 

とカウント

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

enter image description here

+0

これはまさに私が探しているものです! stringrについて少し詳しく読んでいます。あなたがそれについてお勧めする文書はありますか? 答えをありがとう! – AimForNuts

+0

これで十分です:https://cran.r-project.org/web/packages/stringr/vignettes/stringr.html。代わりに、基底のR 'strsplit'と' gsub'を使って空白を分割して削除することもできます。 – Jimbou

+0

私は両方の方法を見てみましょう! 返信いただきありがとうございます – AimForNuts

関連する問題