0

写真の誰がCSVとしてファイルに保存されているかを示すデータがあります。

|------------+---------------------------|
| image      | people                    |
|------------+---------------------------|
| image1.png | John, Paul                |
| image2.png | John                      |
| image3.png |                           |
| image4.png | George, Paul, John, Ringo |
| ...        |                           |
|------------+---------------------------|

これをRにロードして、さまざまな方法でプロットしたいと思いますが、各人の出現回数を示す棒グラフを取得したいとします。

それが助けになれば、データを再構築することができます。

ありがとうございました

4

1 に答える 1

1

このようなデータセットは、質問で言及した状況を説明しています。

require(plyr)
people_list = c("Edward", "Smith", "Neo", "Mr. Anderson", 
                "Red John", "Blackbeard", "Lily", "Anne")
dat = data.frame(image = sprintf("image%d.png", 1:100))
dat = ddply(dat, .(image), function(x) {
  people = sample(people_list, size = sample(1:length(people_list), 1))
  return(data.frame(image = x$image, people))
})
> head(dat)
       image     people
1 image1.png Blackbeard
2 image1.png     Edward
3 image1.png       Anne
4 image1.png       Lily
5 image1.png        Neo
6 image1.png   Red John

データセットをこの形状でキャストすると、fromを使用してこれから集計を計算できddplyますplyr

# Number of occurences of people
occ = ddply(dat, .(people), summarise, no_occurence = length(people))
> occ
        people no_occurence
1         Anne           48
2   Blackbeard           56
3       Edward           46
4         Lily           55
5 Mr. Anderson           55
6          Neo           51
7     Red John           60
8        Smith           56

...そしてこれを使って棒グラフを作成します。例:

require(ggplot2)
theme_set(theme_bw())
ggplot(occ, aes(x = people, y = no_occurence)) + geom_bar()

ここに画像の説明を入力してください

これにより、他のビジュアライゼーションの作成を開始できる可能性があります。

于 2012-10-19T22:20:39.287 に答える