2013-06-06 55 views
1

我有一個「\ t」的分隔的數據文件看起來是這樣的:如何讀取列中出現混亂的文件?

Hotel  Price Location 
hotel1  100  A 
hotel2  Unknown B 
hotel3  1,200  C 
hotel4  <id=?h B 

在列「價」,有些數字包含逗號和看起來像「1200」。某些行的「價格」列被搞亂了,包含「未知」或其他沒有「\ t」且沒有特定模式的其他內容。

我該如何讀取這個文件,刪除所有含有「價格」的行,並刪除所有數字的逗號?我想是這樣的:

Hotel  Price Location 
hotel1  100  A 
hotel3  1200 C 

我使用

price <- read.table("hotel.txt", header=TRUE, colClasses=c("Price"="integer")) 

它不工作,因爲掃描()預期「的整數」,但得到的東西不是整數嘗試。

任何人都可以幫忙嗎?

在此先感謝。

回答

3

在2個步驟:

## remove not numeric like Price 
dat <- dat[grepl('[0-9]+',dat$Price),] 
# Hotel Price Location 
# 1 hotel1 100  A 
# 3 hotel3 1,200  C 

## convert price to numeric 
dat$Price <- as.numeric(gsub(',','',dat$Price)) 

Hotel Price Location 
1 hotel1 100  A 
3 hotel3 1200  C 

其中DAT是:

dat <- read.table(text='Hotel Price Location 
hotel1 100 A 
hotel2 Unknown B 
hotel3 1,200 C 
hotel4 <id=?h B',header=TRUE) 
+0

謝謝,它的工作原理!我確實想給你的答案投票。但是我沒有足夠的聲望,對不起。 –

+0

@YishiLin沒問題,歡迎你。 – agstudy