2012-01-09 2 views
5

Заранее благодарим за ваш ответ. Я пытаюсь создать столбчатый сюжет из файла CSV, и я побежал в следующей икоту: Сначала я положил файл CSV в переменный:Barplot не оценивает данные в R

test <- read.csv(file=\"test4.csv\",sep=\",\",head=TRUE") 

Тогда я пытаюсь создать бар участок с помощью следующие

barplot(test) 

и я получаю следующее сообщение об ошибке,

Error in barplot.default(test) : 'height' must be a vector or a matrix 

поэтому я стараюсь

barplot(t(test)) 

и он работает, но, как ожидается, ось переключает, так что я стараюсь

barplot(t(t(test))) 

и она работает, но я чувствую, что должна быть лучшим решением, чем перенося транспонированным.

ответ

12

Вопрос заключается в том, что read.csv outputs a data frame и barplot expects either a vector or a matrix. Функция barplot работает, когда вы транспонируете, потому что t() coerces data frames to matrices.

Если вы либо начать с

test <- as.matrix(read.csv(file="test4.csv",sep=",",head=TRUE)) 

или позже сделать

barplot(as.matrix(test)) 

, то вы должны быть хорошо.

+0

Отличный !! вопрос: как я могу утверждать, что первый столбец не является частью данных –

+2

Вы хотите сказать, что вы не хотите включать первый столбец 'test'? В этом случае вы можете называть 'barplot (as.matrix (test [, 2: ncol (test)]))' (т. Е. Брать столбцы 'test', начиная со второго и заканчивая тем, что сколько столбцов' test' имеет (который является 'ncol (test)')). –

Смежные вопросы