2014-12-28 11 views
11

Tôi mới đến R, vì vậy rất có thể đây là câu hỏi ngớ ngẩn.
Mỗi khi tôi tạo dữ liệu nhân tạo và đôi khi sử dụng tập dữ liệu đã nhập, R cho tôi biết các biến của tôi không có hàng hoặc cột.
Tôi có thể chạy hồi quy nhưng tôi không thể căn cứ lệnh trên số hàng/cột mà biến của tôi có. Ví dụ:
Ví dụ: tôi có một biến số x1, là một vectơ cột của các số quan sát là 100.Tại sao ncol và nrow chỉ mang lại giá trị NULL khi tôi có dữ liệu?

ncol(x1) 

NULL 

nrow(x1) 

NULL 

Tuy nhiên, nếu tôi làm điều này:

x=t(x) 
x=t(x) 

và gõ lại ncol(x), nrow(x), sau đó tôi nhận được con số thực tế của cột, hàng mà đối tượng có.

Tại sao điều này xảy ra và làm thế nào tôi có thể sửa lỗi này mà không phải sử dụng t()?

+2

Không có hàng hoặc cột nào trong vector cơ bản. Đây có phải là vấn đề của bạn không? – A5C1D2H2I1M1N2O1R2T1

+2

Thay vào đó, hãy thử 'NCOL' và' NROW'. Họ làm việc với vectơ. –

+0

OK, giờ tôi đã hiểu. Cảm ơn! – Goose

Trả lời

19

Bạn cần sử dụng NCOL(x)NROW(x) cho véc tơ. Bằng cách chuyển đổi x (t(x)), bạn chuyển nó thành ma trận, do đó, ncol(x)nrow(x) hoạt động sau đó.

Đó là trong tập tin trợ giúp:

ncol nrow và ncol trả lại số hàng hoặc cột xuất hiện trong x?. NCOL và NROW cũng xử lý một vector như ma trận 1 cột.

> x <- 1:100 
> is.matrix(x) 
[1] FALSE 
> NCOL(x) 
[1] 1 
> y <- t(x) 
> is.matrix(y) 
[1] TRUE 
> ncol(y) 
[1] 100 
+0

Cảm ơn bạn! Tôi hoàn toàn bỏ lỡ điều này trên tập tin. – Goose

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