1

私は次のようなテキスト(csv)ファイルを読む必要があります。最初の4列は私の興味の対象ですが、その後はたくさんのがらくたがあります。最初の4列をRに読み込みたいだけです。

ここに画像の説明を入力してください

最初の4列が必要なので、出力(Excelで開いたcsv)は次のようになります。

ここに画像の説明を入力してください

SOの制限により、ファイル全体を貼り付けることも添付することもできませんでした。トレーニングの小さな例を次に示します。

type,latitude,longitude,name,link1,
W,43.075319,-89.386145,Mirch Masala,"<just link, jjksskkls  hskks > ","<just link, jjksskkls  hskks > "
W,43.07488,-89.390698,Himal Chuli Restaurant,"<just link, jjksskkls  hskks > ","<just link,  hskks , hsksks  > "
W,43.074887,-89.391011,Chautara Restaurant,"<just link,  hskks , hsksks  > ","<just link, jjksskkls  hskks > "
W,43.092866,-89.351587,Dobhan Restaurant,"<just link, jjksskkls  hskks > ","<just link, jjksskkls , ssjjs hskks > "
W,43.074746,-89.393137,State Street Cash Mart,"<just link, jjksskkls  hskks > ","<just link, jjksskkls , ssjjs hskks > "
W,43.072801,-89.395718,Dotty Dumplings Dowry,"<just link, jjksskkls ,    hskks > ","<just link, jjksskkls , ssjjs hskks > "
W,43.074744,-89.393046,Dobra Tea,"<just link, jjksskkls  hskks > ","<just link, jjksskkls , ssjjs hskks > "
W,43.076372,-89.380231,Hi-Madison,"<just link, jjksskkls  hskks > ","<just link, jjksskkls , ssjjs hskks > "
W,43.019624,-89.421822,Candlewood Suites Fitchburg,"<just link, jjksskkls , ssjjs hskks > ","<just link, jjksskkls , ssjjs hskks > "
W,43.08154,-89.524094,Holiday Inn Hotel & Suites Madison West,"<just link, jjksskkls 100  hskks > ","<just link, jjksskkls , ssjjs hskks > "

Rにインポートするときに最初の4列を読み取るだけのアイデアはありますか?

4

2 に答える 2

2

あなたの質問に対するあなたのコメントに基づいて、あなたのタイトルはやや誤解を招くものです。問題が発生しているのは、ファイナルの列の正確な数がわからないことdata.frameです。

?read.tableヘルプページから:

count.fieldsは、誤ったレコード長のレポートをもたらすファイルの読み取りに関する問題を判別するのに役立ちます。

それでは、別の答えを試してみましょう。

まず、これがデータを表すようにします。

"W",43.075319,-89.386145,"Mirch Masala","<J, K>"
"W",43.07488,-89.390698,"Himal Chuli Restaurant","<J, K>","<J, K>","<J, K>"
"W",43.074887,-89.391011,"Chautara Restaurant","<J, K>","<J, K>"
"W",43.092866,-89.351587,"Dobhan Restaurant","<J, K>","<J, K>","<J, K>","<J, K>"
"W",43.074746,-89.393137,"State Street Cash Mart","<J, K>"
"W",43.072801,-89.395718,"Dotty Dumplings Dowry"

(これがすでにテキストまたはcsvファイルとして保存されている場合、この次のステップはあなたの側からは必要ありませんが、最小限の再現可能な例のために...)

これらの行をテキストファイルに書き込んで、read.tableプロセスをシミュレートします。

writeLines('"W",43.075319,-89.386145,"Mirch Masala","<J, K>"
"W",43.07488,-89.390698,"Himal Chuli Restaurant","<J, K>","<J, K>","<J, K>"
"W",43.074887,-89.391011,"Chautara Restaurant","<J, K>","<J, K>"
"W",43.092866,-89.351587,"Dobhan Restaurant","<J, K>","<J, K>","<J, K>","<J, K>"
"W",43.074746,-89.393137,"State Street Cash Mart","<J, K>"
"W",43.072801,-89.395718,"Dotty Dumplings Dowry"', "myRaggedFile.txt")

read.tableこれにより、またはを使用して読み込まれる「不規則な」ファイルが作成されますread.csv。ただし、秘訣はcount.fields、ファイルに含める必要のある列の数を把握するために使用することです。

dat <- read.csv("myRaggedFile.txt", header=FALSE, 
                col.names=1:max(count.fields("myRaggedFile.txt", sep=",")))
dat
#      X1       X2        X3                     X4     X5     X6     X7     X8
# 1     W 43.07532 -89.38614           Mirch Masala <J, K>                     
# 2     W 43.07488 -89.39070 Himal Chuli Restaurant <J, K> <J, K> <J, K>       
# 3     W 43.07489 -89.39101    Chautara Restaurant <J, K> <J, K>              
# 4     W 43.09287 -89.35159      Dobhan Restaurant <J, K> <J, K> <J, K> <J, K>
# 5     W 43.07475 -89.39314 State Street Cash Mart <J, K>                     
# 6     W 43.07280 -89.39572  Dotty Dumplings Dowry            
dat <- dat[1:4] # To keep just the first four columns
## Or, continuing with my original answer:
## read.csv("myRaggedFile.txt", header=FALSE, 
##          col.names=1:max(count.fields("myRaggedFile.txt", sep=",")))[1:4]
于 2012-11-30T12:14:20.687 に答える
0

ファイルを読み込むときは、次のようなものを使用します。

fist4columns <-read.table( "/ file / path / filename.csv"、header = TRUE、sep = "、")[、c(1:4)]

于 2012-11-30T17:00:01.543 に答える