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 factor
thì 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à levels
sẽ 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. unique
sẽ trả về a factor
theo 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 levels
hệ 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 ')