2016-09-12 5 views
1

データファイルは21行ですが、データファイルはありません。各行の列の数が異なります。最初の列はヘッダーで、残りの列は数字です。データのインポート中にRが列を行に分割しないようにする

Full text file is here.

だから、私が使用してファイルをインポートします。d <- read.table("data.txt", sep = " ", fill=T)。しかし、view()を使ってデータを見ると、たくさんの列(160,000+)を持つ1つの行が3行に分割されていることがわかります。 A picture showing this phenomenon is here.

Rがこれをやっているのはなぜですか?そして私はそれを修正して21行を得ることができますか?私はどんな助け/ポインタにも感謝します。私は、Windows 7で16 GBのメモリを搭載したR Studio(64ビット)を使用しています。

また、投稿する前に周りを見回しましたが、運があまりありませんでした。 「形状変更」パッケージは、最初はいくつかの助けに見えましたが、私のニーズに合わせて実際には使用できませんでした。インポート中またはインポート後に問題を解決するためのヒントがあれば幸いです。ありがとう。

+0

それは有用であろうので、私たちではなく、あなたのデータのスクリーンショットを作る、あなたのデータセットをインポートすることができます。 –

+0

かなり長いファイルです。代わりに、私はテキストファイルへのリンクを追加しました。 – berge2015

+2

[this](http://stackoverflow.com/questions/1874443/import-data-into-r-with-an-unknown-number-of-columns)に関連すると思われます。これは 'read.table'の仕組みです。列の最大数を決定しました。あなたが試してみることができる答えがあります。 – aosmith

答えて

0

read.tableは、test.txtの最初の5行だけをチェックして、行の最大長を判断するためです。あなたのデータでは、9行目がその最大値を超えているため、奇妙な振る舞いをしています。

read.tableには、this answerのように名前を付けることで作成する列数を指定することで、これを回避できます。 count.fieldsを使用して見つけることができるいくつかの行あたりの要素の数は:あなたは `dput(d)を`掲載場合

# Find the number of elements per line in test.txt 
perline <- count.fields("test.txt", sep = " ") 
maxlength <- max(perline) 

# Read in test.txt 
d <- read.table("test.txt", sep = " ", 
       row.names = 1, col.names = 1:maxlength, 
       fill = TRUE) 
+0

ニース!最大数の列を使用するように指示するのは、まさに望むものと同じように見えました。ありがとうKen。 @aosmithにも感謝します。 – berge2015

関連する問題