2013-12-02 3 views
-1

У меня довольно стандартная таблица, обычно, когда я делаю что-то подобное, чтобы читать в столбце из таблицы, он отлично работает , но по какой-то причине на этот раз этого не произошло.R чтение данных из столбца, но это не чистые данные, у него есть разделитель уровней.

x <- dataFile$columnName 

Вот что я получаю:

[1] 61 71 83 55 44 78 57 46 41 36 45 48 38 33 54 62 60 44 70 49 57 86 41 71 59 52 51 62 45 43 
54 Levels: 33-87 36-81 38-79 41-70 41-85 43-47 44-51 44-62 45-51 ... 43 

Я просто хочу верхнюю часть, без всех уровней в нем.

-----------

Edit (в подготовке к этому были закрыты): вместо того чтобы оставлять то, что в настоящее время вводит в заблуждение информацию в комментариях (в случае, если это проявляется в чьем-поиске) , верхняя часть - всего лишь набор уровней факторов. Если вам просто нужны эти значения (в виде текста), вы должны использовать: as.character(x). Если вы хотите, символы перед знаком минус, если один присутствовал, вы можете использовать:

as.numeric(sub("\\-.+$", "", as.character(x))) 

Использование as.numeric(x), как правило, возвращают значения от 1 до 54, и не имеет смысла, если вы не хотите, только индекс.

+0

Пожалуйста, разместите воспроизводимый пример. – mnel

+0

Это большой стол, вот ссылка на него. [ссылка] (https://www.dropbox.com/s/81byetm90d8mffd/VermontwomensGameData.txt) – user2963379

+0

'as.integer (dataFile $ columnName)' – Maiasaura

ответ

0

из read.table

stringsAsFactors
логично: должны векторы символов быть преобразованы в факторы? Обратите внимание, что это переопределяется as.is и colClasses, оба из которых позволяют более тонкое управление.

Так набор stringAsFactors = FALSE в read.table команды:

data <- read.table("C:/rk/R/problem.txt", sep="\t", fill = FALSE, stringsAsFactors = FALSE) 

выход для одной колонки:

data$V21 
[1] "avg " " 45.0 " " 45.5 " " 55.7 " " 58.2 " " 60.0 " " 60.2 " " 58.3 " " 58.4 " " 57.3 " " 55.7 " " 53.4 " " 52.5 " " 52.7 " " 53.4 " " 51.9 " 
[17] " 52.6 " " 53.1 " " 53.1 " " 53.5 " " 52.4 " " 52.3 " " 52.0 " " 52.1 " " 51.9 " " 51.7 " " 52.1 " " 52.1 " " 52.4 " " 51.8 " " 51.6 " " 51.0" 

Там нет уровней, когда stringAsFactors установлен в FALSE.