2

取得した研究論文のリストで、さまざまなジャーナルの頻度をプロットしようとしています。データ フレームの各行は論文に対応しており、その論文にはジャーナルが関連付けられています。

ヒストグラムにレベル (ビン) をプロットするために次のことを行いました。

journal = main$Publication.Journal
tb <- table(journal)
barplot(tb[order(tb, decreasing=T)])
axis(2,at=seq(0, 12, 1), lab=seq(0, 12, 1))

ジャーナル_ビン

唯一の問題は、グラフ (またはテーブル自体) から頻度 1 のジャーナルを切り出したいことです。これは、最も頻度の高いジャーナルのみを観察しようとしているためです (したがって、順序付けられた棒グラフ)。これを行う方法についての洞察はありますか?

どうもありがとう!ナタナエル

4

3 に答える 3

2

例にデータセットがないと特定の問題に答えるのは難しいため、モック例を使用した1つのソリューションを次に示します。

x <- rpois(100,100)
xt <- table(x)
xtd <- as.data.frame(xt)
xtds <- subset(xtd, Freq>1)  # use subset, as noted by @baptiste
plot(Freq ~ x, xtd, type="h", ylim=c(0,10))
lines(Freq ~ x, xtds, type="h", col="red")

ここに画像の説明を入力

data.frame私の知る限り、 aを aに簡単に強制できるかどうかはわかりませんtable。そのため、別の解決策が必要になる場合があります。xt > 1また、たとえば、論理テストの結果が役立つ場合があることに注意してください。

于 2013-05-29T00:53:05.727 に答える
2

または非常に単純に

tb <- tb[tb>1]

tableオブジェクトは、他のオブジェクトと同じ方法でサブセット化できarrayます。

于 2013-05-29T14:25:38.083 に答える
1

次のようなことを試すことができます:

journal <- read.table(
  header=TRUE, text='Name  Article
JAMA    A
MAD B
Cigar_Afficianado   C
Bowling_Weekly  D
JAMA    E
MAD F
Cigar_Afficianado   G
JAMA    H
MAD I
Cigar_Afficianado   J
')# create data set
library(plyr)
table(journal$Name) # as in your example
journal <- ddply(journal, .(Name), transform, Article_count = length(Article))
journal #shows new column from transform in plyr with a count of articles
journal <- journal[journal$Article_count > 1, ] #removes the low counts
journal #shows that the low counts are removed
于 2013-05-29T13:53:54.437 に答える