0

文字列を含む列を持つデータ フレームが与えられます。特定のパターンを持つ文字列の頻度をプロットしたいと思います。例えば

strings  <- c("abcd","defd","hfjfjcd","kgjgcdjrye","yryriiir","twtettecd")
df <- as.data.frame(strings)
df
     strings
1       abcd
2       defd
3    hfjfjcd
4 kgjgcdjrye
5   yryriiir
6  twtettec

パターン `"cd" を含む文字列の頻度をプロットしたいのですが、簡単に解決できる人はいますか?

4

3 に答える 3

2

あなたの質問から、いくつかのエントリを複数回表示するつもりだったと推測するので、重複した文字列を 1 つ追加しました。

x <- c("abcd","abcd","defd","hfjfjcd","kgjgcdjrye","yryriiir","twtettecd")

特定のパターンを含む文字列のみを検索するには、grepまたはを使用しgreplます。

y <- x[grepl("cd", x)]

頻度の表を取得するには、次を使用できますtable

table(y)

y
      abcd    hfjfjcd kgjgcdjrye  twtettecd 
         2          1          1          1 

また、次のようにplotorを使用してプロットできます。barplot

barplot(table(y))

ここに画像の説明を入力

于 2011-06-26T16:30:30.527 に答える
1

他の人はすでにgreplについて言及しています。これは、grepを使用して一致の位置を取得するplot.densityの実装ですここに画像の説明を入力

plot( density(0+grepl("cd", strings)) )

範囲を超えて密度プロットを拡張するのが気に入らない場合は、「logspline」パッケージに他の方法があり、範囲の極値で明確な境界線を得ることができます。RSiteSearchの検索

于 2011-06-26T16:54:07.327 に答える
1

「Kernlab」パッケージを確認してください。任意の種類の文字列が可能なカーネル (パターン) を定義し、後でそれらをカウントできます。

于 2011-06-26T23:36:17.487 に答える