แสดงรายการค่าที่แตกต่างกันในเวกเตอร์ใน R


98

ฉันจะแสดงรายการค่าที่แตกต่างกันในเวกเตอร์ที่ค่าถูกจำลองได้อย่างไร ฉันหมายถึงคล้ายกับคำสั่ง SQL ต่อไปนี้:

SELECT DISTINCT product_code
FROM data

คำตอบ:



12

หากข้อมูลเป็นจริงfactorคุณสามารถใช้levels()ฟังก์ชันเช่น

levels( data$product_code )

หากไม่ใช่ปัจจัย แต่ควรเป็นคุณสามารถแปลงเป็นตัวประกอบก่อนโดยใช้factor()ฟังก์ชันเช่น

levels( factor( data$product_code ) )

อีกทางเลือกหนึ่งดังที่กล่าวไว้ข้างต้นคือunique()ฟังก์ชัน:

unique( data$product_code )

ความแตกต่างที่สำคัญระหว่างทั้งสอง (เมื่อใช้กับ a factor) คือlevelsจะส่งคืนเวกเตอร์อักขระตามลำดับของระดับรวมถึงระดับใด ๆ ที่เข้ารหัส แต่ไม่เกิดขึ้น uniqueจะส่งคืน a factorตามลำดับที่ค่าจะปรากฏก่อนโดยเว้นระดับที่ไม่เกิดขึ้น (แม้ว่าจะยังรวมอยู่ในlevelsปัจจัยที่ส่งคืน)


8

ลองใช้ฟังก์ชันที่ซ้ำกันร่วมกับโอเปอเรเตอร์ปฏิเสธ "!"

ตัวอย่าง:

wdups <- rep(1:5,5)
wodups <- wdups[which(!duplicated(wdups))]

หวังว่าจะช่วยได้



0

อีกวิธีหนึ่งคือการใช้dplyrแพ็คเกจ:

x = c(1,1,2,3,4,4,4)
dplyr::distinct(as.data.frame(x))
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.