我在这里得到了这些数据:
State Abb Region Change
3 Arizona AZ West 24.6
6 Colorado CO West 16.9
10 Florida FL South 17.6
11 Georgia GA South 18.3
13 Idaho ID West 21.1
29 Nevada NV West 35.1
34 North Carolina NC South 18.5
41 South Carolina SC South 15.3
44 Texas TX South 20.6
45 Utah UT West 23.8
我试图提取一个子集,其中Change> 40。 当我使用
subset(uspopchange, rank(Change)>40)
它有效 但是当我使用
时subset(uspopchange, Change > 40)
它没有任何结果。
此外,如果我使用
subset(uspopchange, Change > 16.9)
它也有效。
为什么这样做?为什么我需要用rank()
来获取我的子集?
BTW:数据来自
install.packages("gcookbook")
答案 0 :(得分:1)
> library(gcookbook)
> data(uspopchange)
> head(uspopchange[order(uspopchange$Change,decreasing=TRUE),])
State Abb Region Change
29 Nevada NV West 35.1
3 Arizona AZ West 24.6
45 Utah UT West 23.8
13 Idaho ID West 21.1
44 Texas TX South 20.6
34 North Carolina NC South 18.5
没有Change
大于40的行。当您在rank(Change) > 40
中使用subset()
时,它会根据{{1}的值为您提供行排名高于40.因为数据中有50行(Change
的长度为50),所以得到排名为41,42,43,...,50的行。
Change
这些是等价的。