มีวิธีที่ง่ายกว่าหรือไม่ในการตรวจสอบให้แน่ใจว่าแถวของกรอบข้อมูลได้รับการจัดเรียงตามเวกเตอร์ "เป้าหมาย" ที่ฉันดำเนินการในตัวอย่างสั้น ๆ ด้านล่างหรือไม่
df <- data.frame(name = letters[1:4], value = c(rep(TRUE, 2), rep(FALSE, 2)))
df
# name value
# 1 a TRUE
# 2 b TRUE
# 3 c FALSE
# 4 d FALSE
target <- c("b", "c", "a", "d")
สิ่งนี้ดูเหมือนจะค่อนข้าง "ซับซ้อน" เพื่อให้งานเสร็จ:
idx <- sapply(target, function(x) {
which(df$name == x)
})
df <- df[idx,]
rownames(df) <- NULL
df
# name value
# 1 b TRUE
# 2 c FALSE
# 3 a TRUE
# 4 d FALSE