我在R中的订单功能遇到问题。从一个新的会话开始,我得到了
iris[98:99,3]
[1] 4.3 3.0
order(iris[98:99,3])
[1] 2 1
order(iris[,3])[98:99]
[1] 127 139
第一顺序声明说,如果我只对有问题的两个元素进行排序,那么正确地说明4.3是在3.0之后。好。但是,当我对整个列进行排序并只询问元素98和99的顺序时,命令似乎认为3.0是在4.3之后。我在这里误解了一些东西还是这个错误?
如果重要
sessionInfo()
R version 3.3.3 (2017-03-06)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
答案 0 :(得分:3)
它工作正常,但你在脑海中引用了错误的数字。 order
的结果是原始向量的索引,意思是
order(iris[,3])[98:99]
127 139
说如果你将虹膜[,3]元素从小到大排列并查看第98和第99个元素,你将从原始向量中获得数字127和139(均为4.8)。
答案 1 :(得分:1)
这是切换支架的结果
order(iris[,3][98:99])
#[1] 2 1
在OP的帖子中,
order(iris[,3])
给出整列的order
,然后我们选择第98和第99次观察
order(iris[,3])[98:99]
#[1] 127 139
我们需要查看rank
此处
order(order(iris[,3]))[98:99]
#[1] 75 51