factory_list <- structure(c(5L, 4L, 2L, 3L, 1L), .Label = c("台北", "台中", "高雄", "新竹", "台南"), class = "factor")
factory_list
mydf <- structure(list(village = structure(c(1L, 2L, 3L, 4L, 5L), .Label = c("台北", "台中", "高雄", "新竹", "台南"),class = "factor"),
rev = c(9.23913043478261,16.3571428571429, 15.6206896551724, 15.0980392156863, 10)),
class = c("tbl_df", "tbl", "data.frame"),
row.names = c(NA, -5L),
.Names = c("factory", "rev"))
mydf
# result as I expexted
mydf[factory_list,]
mydf_wrong <- structure(list(village = structure(c(1L, 2L, 3L), .Label = c("台北", "台中", "高雄"), class = "factor"),
rev = c(9.23913043478261,16.3571428571429, 15.6206896551724)),
class = c("tbl_df", "tbl", "data.frame"),
row.names = c(NA, -3L),
.Names = c("factory", "rev"))
mydf_wrong
# main problem here:
mydf_wrong[factory_list,]
# 補充: 試圖自己重現問題卻得不出正確結果..
factory2 <- as.factor(c("a","b","c"))
mydf2 <- data.frame(factory=as.factor(c("c","a","b")),rev=c(1000,1500,3200))
mydf2[factory2,]
CgpmYWN0b3J5X2xpc3QgPC0gc3RydWN0dXJlKGMoNUwsIDRMLCAyTCwgM0wsIDFMKSwgLkxhYmVsID0gYygi5Y+w5YyXIiwgIuWPsOS4rSIsICLpq5jpm4QiLCAi5paw56u5IiwgIuWPsOWNlyIpLCBjbGFzcyA9ICJmYWN0b3IiKQpmYWN0b3J5X2xpc3QKbXlkZiA8LSBzdHJ1Y3R1cmUobGlzdCh2aWxsYWdlID0gc3RydWN0dXJlKGMoMUwsIDJMLCAzTCwgNEwsIDVMKSwgLkxhYmVsID0gYygi5Y+w5YyXIiwgIuWPsOS4rSIsICLpq5jpm4QiLCAi5paw56u5IiwgIuWPsOWNlyIpLGNsYXNzID0gImZhY3RvciIpLCAKICAgICAgICAgICAgICAgICAgICAgICByZXYgPSBjKDkuMjM5MTMwNDM0NzgyNjEsMTYuMzU3MTQyODU3MTQyOSwgMTUuNjIwNjg5NjU1MTcyNCwgMTUuMDk4MDM5MjE1Njg2MywgMTApKSwgCiAgICAgICAgICAgICAgICAgIGNsYXNzID0gYygidGJsX2RmIiwgInRibCIsICJkYXRhLmZyYW1lIiksIAogICAgICAgICAgICAgICAgICByb3cubmFtZXMgPSBjKE5BLCAtNUwpLCAKICAgICAgICAgICAgICAgICAgLk5hbWVzID0gYygiZmFjdG9yeSIsICJyZXYiKSkKbXlkZgojIHJlc3VsdCBhcyBJIGV4cGV4dGVkCm15ZGZbZmFjdG9yeV9saXN0LF0KCgpteWRmX3dyb25nIDwtIHN0cnVjdHVyZShsaXN0KHZpbGxhZ2UgPSBzdHJ1Y3R1cmUoYygxTCwgMkwsIDNMKSwgLkxhYmVsID0gYygi5Y+w5YyXIiwgIuWPsOS4rSIsICLpq5jpm4QiKSwgY2xhc3MgPSAiZmFjdG9yIiksIAogICAgICAgICAgICAgICAgICAgICAgIHJldiA9IGMoOS4yMzkxMzA0MzQ3ODI2MSwxNi4zNTcxNDI4NTcxNDI5LCAxNS42MjA2ODk2NTUxNzI0KSksIAogICAgICAgICAgICAgICAgICBjbGFzcyA9IGMoInRibF9kZiIsICJ0YmwiLCAiZGF0YS5mcmFtZSIpLCAKICAgICAgICAgICAgICAgICAgcm93Lm5hbWVzID0gYyhOQSwgLTNMKSwgCiAgICAgICAgICAgICAgICAgIC5OYW1lcyA9IGMoImZhY3RvcnkiLCAicmV2IikpCm15ZGZfd3JvbmcKIyBtYWluIHByb2JsZW0gaGVyZToKbXlkZl93cm9uZ1tmYWN0b3J5X2xpc3QsXQoKCgoKIyDoo5zlhYU6IOippuWcluiHquW3semHjeePvuWVj+mhjOWNu+W+l+S4jeWHuuato+eiuue1kOaenC4uCmZhY3RvcnkyIDwtIGFzLmZhY3RvcihjKCJhIiwiYiIsImMiKSkKbXlkZjIgPC0gZGF0YS5mcmFtZShmYWN0b3J5PWFzLmZhY3RvcihjKCJjIiwiYSIsImIiKSkscmV2PWMoMTAwMCwxNTAwLDMyMDApKQpteWRmMltmYWN0b3J5MixdCgoKCgoKCgoKCg==