2012-01-09 40 views
5

Cảm ơn bạn đã trả lời trước. tôi đang cố gắng để tạo ra một âm mưu thanh xếp chồng lên nhau từ một tập tin csv, và tôi đã chạy vào nấc cục sau: Đầu tiên tôi đặt csv thành một biến:Barplot không đánh giá dữ liệu trong R

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

Sau đó, tôi cố gắng tạo ra một âm mưu thanh sử dụng sau

barplot(test) 

và tôi nhận được lỗi sau,

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

vì vậy tôi cố gắng

barplot(t(test)) 

và nó hoạt động như mong đợi nhưng trục được bật, vì vậy tôi cố gắng

barplot(t(t(test))) 

và nó hoạt động, nhưng tôi cảm thấy phải có một giải pháp tốt hơn so với transposing hoán.

Trả lời

12

Vấn đề là read.csv outputs a data framebarplot expects either a vector or a matrix. Chức năng barplot hoạt động khi bạn chuyển đổi vì t() coerces data frames to matrices.

Nếu bạn bắt đầu với một trong hai

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

hoặc sau này làm

barplot(as.matrix(test)) 

sau đó bạn cần sử dụng tốt.

+0

Tuyệt vời !! câu hỏi phụ: làm thế nào tôi có thể nói rằng cột đầu tiên không phải là một phần của dữ liệu –

+2

Bạn có nghĩa là bạn không muốn bao gồm cột đầu tiên của 'kiểm tra'? Trong trường hợp đó, bạn có thể gọi 'barplot (as.matrix (test [, 2: ncol (test)]))' (nghĩa là lấy các cột của 'test' bắt đầu bằng số thứ hai và kết thúc với nhiều cột' test' có (đó là 'ncol (test)')). –

Các vấn đề liên quan