0Pricing
R Academy · บทเรียน

การเรียงเวกเตอร์ด้วย sort()

เรียงเวกเตอร์ตัวเลขและอักขระจากน้อยไปมากหรือมากไปน้อย

การเรียงเวกเตอร์ด้วย sort() เป็นบทเรียน R Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน R Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส R Academy มีบทเรียนทั้งหมด 4 บทเรียน

sort() ทำอะไร

ฟังก์ชัน sort() จะจัดสมาชิกของเวกเตอร์ตามลำดับจากน้อยไปมากเป็นค่าเริ่มต้น ฟังก์ชันนี้ใช้ได้กับเวกเตอร์ numeric, character และ logical และจะคืนเวกเตอร์ที่เรียงลำดับใหม่โดยไม่แก้ไขเวกเตอร์เดิม

scores <- c(42, 7, 95, 13, 67, 31)
sorted_scores <- sort(scores)
print(sorted_scores)

การเรียงลำดับจากมากไปน้อย

ส่งค่า decreasing = TRUE ให้กับ sort() เพื่อกลับลำดับ การทำเช่นนี้มีประโยชน์สำหรับการจัดอันดับผลลัพธ์จากสูงสุดไปต่ำสุด เช่น คะแนนบนกระดานผู้นำหรือตัวเลขยอดขาย

prices <- c(19.99, 5.49, 89.00, 34.50, 12.75)
sort(prices, decreasing = TRUE)

การเรียงเวกเตอร์ Character

เวกเตอร์ character จะถูกเรียงตามลำดับพจนานุกรม (ตามตัวอักษร) R ใช้การตั้งค่าภาษาท้องถิ่นของระบบในการจัดลำดับ ดังนั้นตัวพิมพ์ใหญ่อาจถูกเรียงก่อนตัวพิมพ์เล็ก โดยขึ้นอยู่กับการตั้งค่าดังกล่าว

fruits <- c('banana', 'Apple', 'cherry', 'apricot', 'Blueberry')
sort(fruits)

พฤติกรรมการเรียงลำดับที่คำนึงถึงตัวพิมพ์

ในภาษาท้องถิ่นส่วนใหญ่ ตัวพิมพ์ใหญ่จะถูกเรียงก่อนตัวพิมพ์เล็ก หากต้องการเรียงโดยไม่คำนึงถึงตัวพิมพ์ ให้แปลงเป็นตัวพิมพ์เดียวกันก่อนด้วย tolower() หรือ toupper() แล้วจึงเรียงลำดับ

words <- c('Zebra', 'apple', 'Mango', 'banana')
# Case-sensitive (uppercase first)
sort(words)
# Case-insensitive approach
words[order(tolower(words))]

การจัดการค่า NA ด้วย na.last

โดยค่าเริ่มต้น sort() จะลบค่า NA ออก ใช้ na.last = TRUE เพื่อวางค่า NA ไว้ท้ายสุด หรือใช้ na.last = FALSE เพื่อวางไว้ด้านหน้า ค่านี้ควบคุมตำแหน่งของค่าที่หายไปในผลลัพธ์

data <- c(5, NA, 2, NA, 8, 1)
# Default: NAs removed
sort(data)
# NAs at end
sort(data, na.last = TRUE)
# NAs at beginning
sort(data, na.last = FALSE)

การเรียงเวกเตอร์ Logical

ในการเรียงจากน้อยไปมาก เวกเตอร์ logical จะวาง FALSE (0) ก่อน TRUE (1) ซึ่งมีประโยชน์เมื่อคุณต้องการจัดกลุ่มค่า TRUE/FALSE ไว้ด้วยกัน

flags <- c(TRUE, FALSE, TRUE, FALSE, FALSE, TRUE)
sort(flags)
sort(flags, decreasing = TRUE)

sort() รักษาชนิดของเวกเตอร์

sort() จะคืนเวกเตอร์ที่มีชนิดเดียวกับข้อมูลนำเข้าเสมอ การเรียง integer จะคืน integer การเรียง double จะคืน double และการเรียง character จะคืน character แอตทริบิวต์ class จะยังคงอยู่

int_vec <- c(5L, 2L, 8L, 1L, 4L)
result <- sort(int_vec)
print(result)
print(class(result))
print(typeof(result))

sort.int() สำหรับการเรียง Integer

sort.int() เป็นฟังก์ชันระดับล่างที่ออกแบบมาโดยเฉพาะสำหรับการเรียงเวกเตอร์ integer หรือ double ฟังก์ชันนี้รับอาร์กิวเมนต์เดียวกับ sort() แต่จะเร็วกว่าเล็กน้อยสำหรับเวกเตอร์ตัวเลขขนาดใหญ่ เพราะข้ามค่าใช้จ่ายบางส่วนของการเลือกใช้ method

big_vec <- c(100L, 3L, 77L, 22L, 55L, 9L)
# sort.int works like sort for numeric/integer vectors
result <- sort.int(big_vec, decreasing = FALSE)
print(result)

เวกเตอร์เดิมจะไม่ถูกเปลี่ยนแปลง

คุณสมบัติสำคัญของ sort() คือ ฟังก์ชันนี้จะไม่แก้ไขเวกเตอร์เดิม แต่จะคืนเวกเตอร์ที่เรียงลำดับใหม่ หากต้องการเก็บลำดับที่เรียงแล้ว คุณต้องกำหนดผลลัพธ์ให้กับตัวแปร

temps <- c(22.5, 18.0, 30.1, 15.3, 27.8)
sorted_temps <- sort(temps)
cat('Original:', temps, '\n')
cat('Sorted:  ', sorted_temps, '\n')

การเรียงลำดับและการใช้ดัชนีร่วมกัน

บางครั้งคุณต้องการทั้งค่าที่เรียงแล้วและตำแหน่งเดิมของค่าเหล่านั้น ให้ใช้ sort() ร่วมกับ which() หรือใช้ order() (ซึ่งจะกล่าวถึงในบทเรียนถัดไป) เพื่อดึงดัชนีเดิมพร้อมกับค่าที่เรียงแล้ว

exam_scores <- c(78, 92, 65, 88, 71)
sorted <- sort(exam_scores)
cat('Sorted scores:', sorted, '\n')
# Find what rank each original score gets
ranks <- rank(exam_scores)
cat('Rank of each student:', ranks, '\n')

รูปแบบการใช้ sort() ในทางปฏิบัติ

รูปแบบที่ใช้บ่อยคือ การเรียงค่าที่ไม่ซ้ำกันจากเวกเตอร์ หรือการหาค่า N อันดับแรกที่มีค่ามากที่สุด โดยใช้ sort() ร่วมกับ head() หรือ tail()

sales <- c(120, 340, 95, 210, 340, 180, 95, 420)
# Unique values in order
sort(unique(sales))
# Top 3 largest
tail(sort(sales), 3)
# Bottom 3 smallest
head(sort(sales), 3)

ตรวจสอบความเข้าใจอย่างรวดเร็ว

อาร์กิวเมนต์ใดควบคุมว่าค่า NA จะปรากฏที่ต้นรายการ ท้ายรายการ หรือถูกตัดออกเมื่อใช้ sort()

ประเด็นสำคัญของ sort()

ประเด็นสำคัญของ sort():

  • ใช้ sort(x) สำหรับการเรียงจากน้อยไปมาก และ sort(x, decreasing=TRUE) สำหรับการเรียงจากมากไปน้อย
  • เวกเตอร์ character จะเรียงตามตัวอักษร และโดยค่าเริ่มต้นจะคำนึงถึงตัวพิมพ์
  • ควบคุมตำแหน่งของ NA ด้วย na.last = TRUE/FALSE/NA
  • sort() ไม่แก้ไขเวกเตอร์เดิม แต่จะคืนเวกเตอร์ใหม่เสมอ
  • ใช้ tail(sort(x), n) หรือ head(sort(x), n) เพื่อหาค่า N อันดับแรกหรือ N อันดับสุดท้าย
  • sort.int() เป็นรูปแบบที่เร็วกว่าเมื่อใช้กับเวกเตอร์ numeric/integer
x <- c(3, 1, NA, 5, 2, NA, 4)
cat('Ascending (no NAs):', sort(x), '\n')
cat('Descending (NAs last):', sort(x, decreasing = TRUE, na.last = TRUE), '\n')

คำถามที่พบบ่อย

บทเรียน “การเรียงเวกเตอร์ด้วย sort()” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การเรียงเวกเตอร์ด้วย sort()” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส R Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส R Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การเรียงเวกเตอร์ด้วย sort()”

เรียงเวกเตอร์ตัวเลขและอักขระจากน้อยไปมากหรือมากไปน้อย คุณปฏิบัติ R Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน R Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน R Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “การเรียงเวกเตอร์ด้วย sort()” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน R Academy นี้ได้ไหม

ได้ บทเรียน R Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การเรียงเวกเตอร์ด้วย sort()
  2. order() สำหรับการจัดลำดับที่ยืดหยุ่น
  3. การจัดอันดับค่าด้วย rank()
  4. การเรียงดาต้าเฟรมตามคอลัมน์
← กลับไปที่ R Academy