2017-01-04 2 views
0

インターネットからダウンロードした不動産販売データがあります。それはPDFファイルです。

> a 
[1] "Airport West 1/26 Cameron St 3 br t $830000 S Nelson Alexander" "Albert Park 106 Graham St 2 br h $0 SP RT Edgar" 

のは、一例として、最初の行を見てみましょう:私はコピーして、テキストファイルにデータを貼り付けると、それはこのようになります。すべての行は、郊外(空港西)、住所(1/26 Cameron St)、寝室数(3)、不動産タイプ(t)、価格($ 830000)、販売タイプ(S)を含む不動産の記録です。最後の1つ(ネルソン)はエージェントについてですが、私はここでは必要ありません。

このデータを分析したいと思います。私は最初に情報を抽出する必要があります。私は、このようなデータを取得することを願って:(bは、データフレームである)

> b 
     Suburb   Address Bedroom PropertyType Price SoldType 
1 Airport West 1/26 Cameron St  3   t 830000  S 
2 Albert Park 106 Graham St  2   h  0  SP 

誰がどのように私は必要なサブ文字列に長い文字列を分割するstringrパッケージまたは他の方法を使用する方法を教えていただけますか?

答えて

4

1)gsubfn :: read.pattern gsubfnパッケージ内read.patternは、その捕捉基(カッコ内の部分)は、入力データフレームのフィールドであると解釈されて作成され、それらを組み立てるための正規表現をとり。

 Suburb   Address Bedroom PropertyType Price SoldType 
1 Airport West 1/26 Cameron St  3   t 830000  S 
2 Albert Park 106 Graham St  2   h  0  SP 

2)これはまた、このような任意のパッケージ(patcnは上からです)なしで行うことができていないパッケージ

replacement <- "\\1,\\2,\\3,\\4,\\5,\\6" 
read.table(text = sub(pat, replacement, a), col.names = cn, as.is = TRUE, sep = ",") 

library(gsubfn) 

pat <- "^(.*?) (\\d.*?) (\\d) br (.) [$](\\d+) (\\w+) .*" 
cn <- c("Suburb", "Address", "Bedroom", "PropertyType", "Price", "SoldType") 
read.pattern(text = a, pattern = pat, col.names = cn, as.is = TRUE) 

このdata.frameを与えます

注:入力a再現可能な形式は:

a <- c("Airport West 1/26 Cameron St 3 br t $830000 S Nelson Alexander", 
"Albert Park 106 Graham St 2 br h $0 SP RT Edgar") 
+0

ありがとうございます。私はこのパッケージを知らない。とても良いです。そして、間違った形でごめんなさい。 –

関連する問題