6

このパッケージを使用してjbryer/likertリッカート データをプロットしています。

ここitemsAB、 などは列名であり、データの一部ではありません。

A B C D
5 4 5 4
3 3 3 4
2 2 2 2
2 2 2 3
5 3 6 7
3 3 5 4

そして、次のコード:

choices  = c("Very low", "Low", "Rather low", "Neither low nor high", "Rather high", "High", "Very high")
for(i in 1:ncol(items)) {
  items[,i] = factor(items[,i], levels=1:7, labels=choices, ordered=TRUE)
}

次に、これをデータに変換してlikertプロットします。これにより、組み込みのプロット関数が を使用する関数でオーバーライドされますggplot

plot(likert(items), ordered=FALSE)

これは私に与えます:

涼しい。すべて注文しました。しかしA、、Bなどは条件の記述子として意味がないため、それらをオーバーライドしたいと思います。

names(items) = c("LT", "ST", "SemTag", "SemTagContext")

これは私に間違った順序を与えます:

STの名前ですが、最初に来るB方法を参照してください。注文がBDCに変更されましたA

D順序を保持し、バーを、CBAまたは、新しいグループ名で返すようにするにはどうすればよいでしょうか: SemTagContextSemTag、?STLT

注: 上記のデータ テーブルは短縮されています。プロットのバーの幅は、この短いデータの例を反映していませんが、私が持っている完全なデータセットを反映しています。問題は同じですが。

4

3 に答える 3

6

ジョンが提案したように、私はこれを自分で再実装することにしました:

# additional requirements
library(ggplot2)
library(reshape2)
library(RColorBrewer)

# create summary table
table_summary = likert(items)

# reshape results
results = melt(table_summary$results, id.vars='Item')

# reorder results
results$Item = factor(results$Item, levels=c("LT", "ST", "SemTag", "SemTagContext"))

# some defaults
ymin = 0
text.size = 3

ggplot(results, aes(y=value, x=Item, group=Item)) + 
  geom_bar(stat='identity', aes(fill=variable)) + 
  ylim(c(-5,105)) + 
  coord_flip() +
  scale_fill_manual('Response', values=brewer.pal(7, "RdYlGn"), 
              breaks=levels(results$variable), 
              labels=levels(results$variable)) +
  geom_text(data=table_summary$summary, y=ymin, aes(x=Item, 
              label=paste(round(low), '%', sep='')), 
              size=text.size, hjust=1) +
  geom_text(data=table_summary$summary, y=100, aes(x=Item,
              label=paste(round(high), '%', sep='')), 
              size=text.size, hjust=-.2) +
  ylab('Percentage') + xlab('')

これにより、正しい順序が生成されます。

于 2013-01-19T15:50:32.897 に答える
2

フルネーム属性を列に追加する Jason Bryer のパッケージにプル リクエストを追加しました。これは、プロット時に使用されます。詳細な記事はこちらhttp://reganmian.net/blog/2013/10/02/likert-graphs-in-r-embedding-metadata-for-easier-plotting/

その追加を考えると、あなたはできる

db <- likert_add_fullnames(db, c(
  "X7"="Do you use sites like Facebook, Twitter, or GPlus?",
  "X8"="Do you participate in online communities organised around your interests? 
    (could be juggling, cooking, sports or academics, for example)?",
  "X10"="Do you know of online communities relevant to your discipline or the 
    courses you are taking now?"))
...

これらの名前は、プロット時に反映されます。

于 2013-10-02T22:01:20.170 に答える