Как прочитать файл, в котором был испорчен столбец?

У меня есть разделенный "\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"))

Это не работает, потому что scan() ожидал целое число, но получил что-то не целое.

Кто-нибудь может помочь?

Заранее спасибо.

1 ответ

Решение

В 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 <- read.table(text='Hotel   Price   Location
hotel1  100 A
hotel2  Unknown B
hotel3  1,200   C
hotel4  <id=?h  B',header=TRUE)
Другие вопросы по тегам