0

将来的にアンケートを処理するためのワークフローをまとめるためのデータを取得するために、楽しいアンケートをオフィスに送信しました。一部の質問にはテキスト入力があり、回答はカンマ区切りのリストでした。データは Google フォームを使用して収集されたため、最終的にはスプレッドシートになりました。このスプレッドシートに直接リンクしてデータを R に取り込むので、必要以上にデータの前処理を行いたくないのです。

R に入力される csv もカンマで区切られているため、カンマをパイプ ('|') に置き換えます。「好きな工業デザインは?」などの質問に対する回答を棒グラフにしたいのですが、多くの人が「iPhone、コーラのボトル」などと答えています。これは、iPhone|コーラのボトルのラベルが付いたバーとして思い浮かびます。

iPhone部分がiPhoneバーなどに貢献するように分割したいと思います。他の言語では、リスト全体をパイプ区切りで連結し、パイプで再度分割してから、その新しいリストで作業します。Rでこのアプローチを試してみました。それは正しい方法ですか、それとももっとRの方法がありますか?

a <- BVNdhData$Pets
b <- paste(a,collapse ="|")
c <- strsplit(b,"|",fixed=TRUE)

それはすべて機能しますが、何をすべきかわからないリストが残ります。

4

1 に答える 1

3

unlist()の結果を呼び出すstrsplit()と、テキストのすべてのコンポーネントを含む単一の文字ベクトルが得られます。

text <- c("cake|pie|sausage roll", "scotch egg|pie")
x <- unlist(strsplit(text, "\\|"))

table()エントリを集計するために使用します。

table(x)

x
        cake          pie sausage roll   scotch egg 
           1            2            1            1 

次に、それをデータフレームに強制します...

dat <- as.data.frame(table(x))
dat


             x Freq
1         cake    1
2          pie    2
3 sausage roll    1
4   scotch egg    1

...そしてプロット:

library(ggplot2)
ggplot(dat, aes(x, Freq)) + geom_point()

ここに画像の説明を入力

于 2013-01-24T08:33:37.380 に答える