1、测试数据
v1 <- c(7,1,10,9,2,8) v2 <- letters[1:6] test <- data.frame(v1,v2) test test2 <- test[order(test$v1),] test2 v3 <- as.character(c(7,1,10,9,2,8)) v4 <- letters[1:6] test3 <- data.frame(v3, v4) test4 <- test3[order(test3$v3),] test4 test5 <- test3[order(as.numeric(test3$v3)),] test5
> v1 <- c(7,1,10,9,2,8) > v2 <- letters[1:6] > test <- data.frame(v1,v2) > test ## 测试数据 v1 v2 1 7 a 2 1 b 3 10 c 4 9 d 5 2 e 6 8 f > test2 <- test[order(test$v1),] ## 按照第一列排序, 没有问题 > test2 v1 v2 2 1 b 5 2 e 1 7 a 6 8 f 4 9 d 3 10 c > v3 <- as.character(c(7,1,10,9,2,8)) ## v3为字符型 > v4 <- letters[1:6] > test3 <- data.frame(v3, v4) ## 测试数据 > test4 <- test3[order(test3$v3),] > test4 ## 因为v3为字符型,出现10 小于2的情况 v3 v4 2 1 b 3 10 c 5 2 e 1 7 a 6 8 f 4 9 d > test5 <- test3[order(as.numeric(test3$v3)),] ## 排序前把字符型转换为数值型,没有问题 > test5 v3 v4 2 1 b 5 2 e 1 7 a 6 8 f 4 9 d 3 10 c