Làm cách nào để liệt kê các giá trị riêng biệt trong một vectơ nơi các giá trị là bản sao? Ý tôi là, tương tự như câu lệnh SQL sau:
SELECT DISTINCT product_code
FROM data
Làm cách nào để liệt kê các giá trị riêng biệt trong một vectơ nơi các giá trị là bản sao? Ý tôi là, tương tự như câu lệnh SQL sau:
SELECT DISTINCT product_code
FROM data
Câu trả lời:
Ý bạn là unique:
R> x = c(1,1,2,3,4,4,4)
R> x
[1] 1 1 2 3 4 4 4
R> unique(x)
[1] 1 2 3 4
Nếu dữ liệu thực sự là a factorthì bạn có thể sử dụng levels()hàm, ví dụ:
levels( data$product_code )
Nếu nó không phải là một thừa số, nhưng nó phải như vậy, trước tiên bạn có thể chuyển nó thành thừa số bằng cách sử dụng factor()hàm, ví dụ:
levels( factor( data$product_code ) )
Một tùy chọn khác, như đã đề cập ở trên, là unique()chức năng:
unique( data$product_code )
Sự khác biệt chính giữa hai (khi áp dụng cho a factor) là levelssẽ trả về một vectơ ký tự theo thứ tự các cấp, bao gồm bất kỳ cấp nào được mã hóa nhưng không xảy ra. uniquesẽ trả về a factortheo thứ tự các giá trị xuất hiện đầu tiên, với bất kỳ mức không xảy ra nào bị bỏ qua (mặc dù vẫn được bao gồm trong levelshệ số trả về).
Bạn cũng có thể sử dụng gói sqldf trong R.
Z <- sqldf('SELECT DISTINCT tablename.columnname FROM tablename ')