ฉันจะแสดงรายการค่าที่แตกต่างกันในเวกเตอร์ที่ค่าถูกจำลองได้อย่างไร ฉันหมายถึงคล้ายกับคำสั่ง SQL ต่อไปนี้:
SELECT DISTINCT product_code
FROM data
ฉันจะแสดงรายการค่าที่แตกต่างกันในเวกเตอร์ที่ค่าถูกจำลองได้อย่างไร ฉันหมายถึงคล้ายกับคำสั่ง SQL ต่อไปนี้:
SELECT DISTINCT product_code
FROM data
คำตอบ:
คุณหมายถึง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
หากข้อมูลเป็นจริงfactor
คุณสามารถใช้levels()
ฟังก์ชันเช่น
levels( data$product_code )
หากไม่ใช่ปัจจัย แต่ควรเป็นคุณสามารถแปลงเป็นตัวประกอบก่อนโดยใช้factor()
ฟังก์ชันเช่น
levels( factor( data$product_code ) )
อีกทางเลือกหนึ่งดังที่กล่าวไว้ข้างต้นคือunique()
ฟังก์ชัน:
unique( data$product_code )
ความแตกต่างที่สำคัญระหว่างทั้งสอง (เมื่อใช้กับ a factor
) คือlevels
จะส่งคืนเวกเตอร์อักขระตามลำดับของระดับรวมถึงระดับใด ๆ ที่เข้ารหัส แต่ไม่เกิดขึ้น unique
จะส่งคืน a factor
ตามลำดับที่ค่าจะปรากฏก่อนโดยเว้นระดับที่ไม่เกิดขึ้น (แม้ว่าจะยังรวมอยู่ในlevels
ปัจจัยที่ส่งคืน)
ลองใช้ฟังก์ชันที่ซ้ำกันร่วมกับโอเปอเรเตอร์ปฏิเสธ "!"
ตัวอย่าง:
wdups <- rep(1:5,5)
wodups <- wdups[which(!duplicated(wdups))]
หวังว่าจะช่วยได้
คุณยังสามารถใช้แพ็คเกจ sqldf ใน R
Z <- sqldf('SELECT DISTINCT tablename.columnname FROM tablename ')
อีกวิธีหนึ่งคือการใช้dplyr
แพ็คเกจ:
x = c(1,1,2,3,4,4,4)
dplyr::distinct(as.data.frame(x))