2016-11-10 2 views
0

に.datファイル:誰かが私を助けることができればhttp://www.stat.ufl.edu/~winner/data/retail92.dat読み出しデータは、私がRに設定されたこのデータをインポートしたいR

は本当に感謝しています。私はread.csv、read.tableを試しましたが、どれも働いていませんでした。私はSASのように変数の長さをどのように特定するのか分かりません。

+0

この投稿は、あなたがhttp://stackoverflow.com/questions/20806811/reading-a-space-delimited-text-file-where-first-column-also-has-spaces探しているものです – Tung

答えて

2

文字数(固定幅)に基づいて列を識別する関数を使用できます。しかし、空白を切り取る必要があります。機能trimwsを使用することができます。

xy <- read.fwf("http://www.stat.ufl.edu/~winner/data/retail92.dat", 
        widths = c(38, 6, 8, 8, 8)) 

> head(xy) 
             V1 V2 V3  V4  V5 
1 Acadia, LA        3.672 0.882 12.364 3.872 
2 Ada, ID        9.251 1.152 21.384 3.861 
3 Adams, CO        7.489 0.911 16.718 3.507 
4 Adams, IN        7.822 1.216 15.772 2.470 
5 Aiken, SC        6.451 1.032 18.474 19.201 
6 Alachua, FL       8.240 1.052 17.505 3.862 
> str(xy) 
'data.frame': 845 obs. of 5 variables: 
$ V1: Factor w/ 845 levels "Acadia, LA       ",..: 1 2 3 4 5 6 7 8 9 10 ... 
$ V2: num 3.67 9.25 7.49 7.82 6.45 ... 
$ V3: num 0.882 1.152 0.911 1.216 1.032 ... 
$ V4: num 12.4 21.4 16.7 15.8 18.5 ... 
$ V5: num 3.87 3.86 3.51 2.47 19.2 ... 
+1

最初の列が37でなければなりません。そうでなければ、2番目の変数> = 10のときに最初の桁をとります。また、 'strip.white = TRUE'は入力段階で使用できる引数です - ' read.fwf "http://www.stat.ufl.edu/~winner/data/retail92.dat"、widths = c(37,6,8,8,8)、strip.white = TRUE) ' – thelatemail

+0

データセット形式が指定されています36,8,8,8,8である[ここ](http://www.stat.ufl.edu/~winner/data/retail92.txt) – Tung

+0

'read_fwf'と' read_empty'をread_emptyは各カラムの開始位置と終了位置を自動的に把握します。あなたは自分でそれを理解しようとする必要はありません: 'mydata < - data.frame(read_fwf(file =" http://www.stat.ufl.edu/~winner/data/retail92.dat "、col_positions = fwf_empty(ファイル= "http://www.stat.ufl.edu/~winner/data/retail92.dat"))) '。それ以外に、 'read_fwf'ははるかに高速です。 '?read_fwf'をもっと見る – panman

関連する問題