2017-05-02 11 views
-1

私はこのレッスンの問題に取り組んできましたが、最後にクイズが探していた答えを得ました。私は5週間も経たないうちに、Rにはかなり新しいですが、これは理解するのに何時間もかかりました。私は、ユルギス、オナ、シカゴのすべての出現をザジャングルから見つけることを任されました。R:すべての名前の検索

問題:「Jurgisread」に凝縮なり、カウントをピックアップしていないでしょう「ユルギスは読み」:私はいくつかの要素が二つの言葉だったことを後でGSUBを使用して句読点を削除し、多くの時間を無駄にしたが実現します。その後、オナとシカゴシカゴのための "Jurgis"の "Jurgiss"への凝縮などがありました。

:これらのタイプのファイルを今後どのように処理するかについてのヒント。

私が行ったこと:私は始めに最初の2行のコードを与えられました。私は彼らが来たスペースを使って要素を分割しました。次に、削除したい句読点を選択しました。いったん私が取り除いた、私が思ったのは、すべて共通のものであり、それらをスペースで置き換え、再び要素を分割します。最後に、私はtable()を呼び出し、すべての単語を大文字にするようにしました。

theJungle <- readLines("http://www.gutenberg.org/files/140/140.txt") 
theJungleList <- unlist(strsplit(theJungle[47:13872], " ")) 

splitJungle1<-unlist(strsplit(theJungleList, "[[:space:]]", fixed = FALSE, 
perl = FALSE, useBytes = FALSE)) 

remPunctuation<-gsub("-|'|,|:|;|\\.|\\*|\\(|\"|!|\\?"," ",splitJungle1) 

splitJungle2<-unlist(strsplit(remPunctuation, "[[:space:]]", fixed = FALSE, perl 
= FALSE, useBytes = FALSE)) 

table(toupper(splitJungle2)=="JURGIS") 
table(toupper(splitJungle2)=="ONA") 
table(toupper(splitJungle2)=="CHICAGO") 

ありがとう!

enter image description here

+0

ご参照ください:[なぜ「誰かが私を助けることはできますか?」されていない実際の質問?](http://meta.stackoverflow.com/q/284236) – EJoshuaS

答えて

2

これはクラスのためだった場合、あなたはおそらく、特定の技術を使用することになりました。一般的にRでのテキスト分析に興味があるのであれば、整頓されたデータ原則とtidytextパッケージを使用することを検討するかもしれません。このモードでは、単語の頻度はpretty quick thing to doです。

library(dplyr) 
library(tidytext) 
library(stringr) 

theJungle <- readLines("http://www.gutenberg.org/files/140/140.txt") 
jungle_df <- data_frame(text = theJungle) %>% 
    unnest_tokens(word, text) 

テキストの中で最も一般的な言葉は何ですか?

jungle_df %>% 
    count(word, sort = TRUE) 

#> # A tibble: 10,349 × 2 
#>  word  n 
#> <chr> <int> 
#> 1 the 9114 
#> 2 and 7350 
#> 3  of 4484 
#> 4  to 4270 
#> 5  a 4217 
#> 6  he 3312 
#> 7 was 3056 
#> 8  in 2570 
#> 9  it 2318 
#> 10 had 2234 
#> # ... with 10,339 more rows 

どのくらいの頻度であなたが探していた固有の名前を見ていますか?

jungle_df %>% 
    count(word) %>% 
    filter(str_detect(word, "^jurgis|^ona|^chicago")) 

#> # A tibble: 6 × 2 
#>  word  n 
#>  <chr> <int> 
#> 1 chicago 68 
#> 2 chicago's  4 
#> 3 jurgis 1098 
#> 4 jurgis's 19 
#> 5  ona 200 
#> 6  ona's 25 
+0

うわー、ありがとうございました。私は後に道路に興味がありますが、はい、それはクラスのためでした。今週の主なテーマは文字列操作だったので、まだtidytextを使用していませんが、これは便利なパッケージです。 –

+0

偉大な答え - "カウント"の素晴らしい単純な使用! – griffmer

関連する問題