2013-02-08 26 views
22

Tôi có một mảng rất đơn giản mà trên đó tôi muốn chạy phân tích đường cong ROC. Nhưng trước tiên, khi tôi cố gắng ép buộc dữ liệu vào loại yếu tố sử dụng lệnh table[1]<-factor(table[1]), tôi nhận được lỗiTruy cập cột với df [col] cho: Lỗi 'x' phải là nguyên tử cho 'sort.list'

Error in sort.list(y) : 'x' must be atomic for 'sort.list' 
Have you called 'sort' on a list? 

ít hàng mẫu từ các dữ liệu được cung cấp cho bên dưới

GRADE TRUE-GRADE 

benign Benign 
benign Benign 
benign Benign 
benign Benign 
benign Benign 
benign Benign 
benign Malignant 
benign Malignant 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Malignant 
indeterminate Malignant 
indeterminate Malignant 
likely benign Benign 
likely benign Benign 
likely benign Benign 

Ai đó có thể cho tôi biết những gì tôi làm sai? kết quả của str (bảng) được đưa ra dưới đây:

data.frame': 127 obs. of 2 variables: 
$ GRADE  : Factor w/ 5 levels "benign","indeterminate",..: 1 1 1 1 1 1 1 1 1 

$ BENIGN.MALIGN: Factor w/ 2 levels "Benign","Malignant": 1 1 1 1 1 1 1 1 1 1 ... 

Trả lời

31

Chức năng [ áp dụng cho một khung dữ liệu trả về một khung dữ liệu (nếu chỉ có một lập luận được sử dụng). Nếu bạn muốn truy cập một cột đơn và trả lại nó dưới dạng vectơ, bạn phải sử dụng [[ để thay thế.

table[1] <- factor(table[[1]]) 

Nhưng điều này có thể không cần thiết vì cả hai cột là những yếu tố (xem ra str của bạn).

Nhân tiện: table không phải là tên tốt cho một đối tượng vì nó cũng là tên của hàm R cơ bản.

+0

Tôi đã dành quá nhiều thời gian để cố gắng sử dụng 'as.vector (bảng [1])' để lấy một véc tơ. Tại sao điều này không tạo ra cùng một kết quả như 'table [[1]]'? –

+0

@alexpmil Nó hoạt động với 'unlist (table [1])'. –

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