2011-09-09 12 views
6

あなたは私に教えてください何のための提案をしている場合、私は正確に質問があったはずだと思うことができませんでした。スペース区切りのデータをスクリプト/文書ファイルからデータフレームに読み込む方法は?

以前は、作業用スクリプトファイルでタブ付きまたは白いスペースのデータフレームにデータを読み込む方法を見てきました。たとえば:その後、

dat <- SOMETHING(
person1 12 15 
person2 15 18 
person3 20 14 
) 

はあなたのウェブサイトからデータをつかみ、ちょうどテーブルにいくつかのことをしたいしていると言う、それはホワイトスペースなどで、このようにオフに来る私は、テキストファイルを開いて、それを救うことができるし、 read.tableをまたはCSVと似ていますが、私は...

おかげ

答えて

14

「トリック」私はこのように読み出されたデータを見てきましたし、私の人生がどのように思い出すことができないために確信していますread.tableの "file"引数としてのテキスト接続:

dat <- read.table(textConnection("person1 12 15 
person2 15 18 
person3 20 14"), stringsAsFactors=FALSE 
) 
str(dat) 
'data.frame': 3 obs. of 3 variables: 
$ V1: chr "person1" "person2" "person3" 
$ V2: int 12 15 20 
$ V3: int 15 18 14 

デフォルトの 'sep'引数は、空白区切りとして機能します。タブを分割する必要がある場合は、sep = "\ t"(textConnectionコールの終了後)を使用します。

編集:実際には、テキストの引数を与えられたscan関数の後続のリビジョンに組み込まれました。コードは今、単純に次のようになります。それはscanを使用していないので、

dat <- read.table(text="person1 12 15 
    person2 15 18 
    person3 20 14", stringsAsFactors=FALSE 
    ) 

readLines機能はまだ、「character'-オブジェクトから読み取るためのtextConnectionを使用する必要があります。

+0

textConnection!とても有難い。 – nzcoops

+0

'scan'のテキスト引数がすべての' read。* '関数に渡され、' textConnection'の必要性が置き換えられたため、この回答は少し古くなっています。なんらかの理由でR poobahsは 'readLines'にテキスト引数を追加しなかったので、それにテキストを供給するために' textConnection'が必要になります –

関連する問題