read.delim
は、表形式のデータをExcel形式で読み込みます。文字列を読むのにはあまり役に立ちません。
テキストファイルのテキストをRに読み込むには、readLines()
を使用できます。 readLines()
は、テキスト行と同数の要素を持つ文字ベクトルを作成します。この種のソフトウェアの行は、改行で終わる任意の文字列です。 (Wikipediaのnewlineについて読む)テキストを書くときは、Return
を押して、システム固有の改行文字を入力する。実際には、テキスト行はソフトウェアウィンドウの幅で定義されていませんが、多くの視覚的な行で実行できます。事実、1行のテキストは、本の中で段落になるものです。あなたはstackoverflowの中で、ここで左に長いテキストをスクロールすることができます
> readLines("/path/to/tom_sawyer.txt")
[1] "\"TOM!\""
[2] "No answer."
[3] "\"TOM!\""
[4] "No answer."
[5] "\"What's gone with that boy, I wonder? You TOM!\""
[6] "No answer."
[7] "The old lady pulled her spectacles down and looked over them about the room; then she put them up and looked out under them. She seldom or never looked through them for so small a thing as a boy; they were her state pair, the pride of her heart, and were built for \"style,\" not service—she could have seen through a pair of stove-lids just as well. She looked perplexed for a moment, and then said, not fiercely, but still loud enough for the furniture to hear:"
[8] "\"Well, I lay if I get hold of you I'll—\"
注:だからreadLines()
は、段落のテキストを分割します。その第七行はこの列より長く、幅が広い。
ご覧のとおり、readLines()
は、長い7番目の段落を1行として読みます。また、ご覧のとおり、readLines()
には、各引用符の前にバックスラッシュが追加されています。 Rは個々の行を引用符で囲んでいるので、元のテキストの一部であるものと区別する必要があります。したがって、元の引用符を "エスケープ"します。 Wikipediaのescapingについて読む
readLines()
"不完全な最終行"がファイル内に見つかったという警告を出力することがあります。これは、最後の行の後に改行がなかったことを意味します。 readLines(..., warn = FALSE)
でこの警告を抑制することはできますが、そうする必要はありません。これはエラーではなく、警告を抑止するだけで警告メッセージは表示されません。
あなただけの出力にはしたくない場合は、あなたのRコンソールにテキストが、プロセス、それはさらに、readLines()
の出力を保持するオブジェクトの作成:readLines()
ほか
mytext <- readLines("textfile.txt")
を、あなたもscan()
を使用することができ、 readBin()
などのファイルからテキストを読み取る関数。 ?scan
などを入力してマニュアルを見てください。?connections
を見て、ファイルをRに読み込むためのさまざまな方法について学んでください。
Vim、メモ帳、TextWranglerなどのテキストエディタで.txtファイルにテキストを書き、MS Wordのようなワードプロセッサでは作成しないことを強くお勧めします。 Wordファイルには、画面に表示されるテキストや印刷されたテキストよりも多くのテキストが含まれています。これらのファイルはRで読み込まれます。試してみることができますが、良い結果を得るには、Wordから.txtファイルテキストエディタで作成することができます。
することもできますコピー&ペーストRを他のソフトウェアで開いたテキストファイルからテキストをまたはRコンソールで、あなたのテキストを作成:Return
を入力すると、Rが実行されることはありませんか
myothertext <- c("What did you do?
+ I wrote some text.
+ Ah, interesting.")
> myothertext
[1] "What did you do?\nI wrote some text.\nAh, interesting."
注意私は")
で文字列を閉じる前にコマンドを実行します。 Rは+
と返信し、編集を続けることができます。私はそれらのplussesに入力しませんでした。それを試してみてください。また、改行はあなたの文字列の一部であることに注意してください。 (私の改行が\n
あるので、私は、Mac上でだ。)
あなたが入力テキストを手動で、私は、ベクター中に1つの文字列としてテキスト全体をロードしたい場合:
x <- c("The text of your book.")
あなたは異なる読み込むことができますこのベクトルの異なる要素への章:より良い参考
y <- c("Chapter 1", "Chapter 2")
、あなたが要素に名前を付けることができます。
z <- c(ch1 = "This is the text of the first chapter. It is not long! Why was the author so lazy?", ch2 = "This is the text of the second chapter. It is even shorter.")
今、あなたはこれらのベクターのいずれかの要素を分割することができます:
sentences <- strsplit(z, "[.!?] *")
は、この機能のための取扱説明書を読み、それが取るの属性について学ぶために?strsplit
を入力します。 2番目の属性は正規表現をとります。この場合、私はstrsplit
に、ベクトルの要素を3つの句読点の後ろにオプションのスペースが続くように分割するように指示しました(ここにスペースを定義しないと、結果の「文章」の前にスペースが付きます)。
sentences
は現在含まれています
> sentences
$ch1
[1] "This is the text of the first chapter" "It is not long"
[3] "Why was the author so lazy"
$ch2
[1] "This is the text of the second chapter" "It is even shorter"
をあなたはインデックス化することによって、個々の文章にアクセスすることができます。
> sentences$ch1[2]
[3] "It is not long"
Rは、それが「ミスター」の後に分割してはならないことを知っていることができなくなります。正規表現で例外を定義する必要があります。これを説明することはこの質問の範囲外です。
どのように被写体や物体を認識するかをRに教えてもらえませんか?
ようこそ! [質問する](http://stackoverflow.com/help/on-topic)と[良いRの質問を書く](http://stackoverflow.com/questions/5963269/how-to-make-a)をお読みください。 -great-r-reproducible-example)を使用します。実際のファイルを見ることなく、これは少し広すぎます。 – Thomas
最初に小さなサンプル(多分最初のページ、段落、または夫婦の文章)をとり、いくつかの利用可能な方法を試してみることをお勧めします。その後、何がうまくいくのか、何ができないのかを学び、どんな特定の質問でも戻ってくることができます。 –
tmパッケージ、ビネットはこちらhttp://cran.r-project.org/web/packages/tm/vignettes/tm.pdf最初のセクションにはデータのインポートに関する情報があります – sckott