将rank()与子集一起使用
我在这里得到了这些数据:将rank()与子集一起使用,r,subset,R,Subset,我在这里得到了这些数据: 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
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
我试图提取一个变化>40的子集。
当我使用
subset(uspopchange, rank(Change)>40)
它起作用了
但是当我使用
subset(uspopchange, Change > 40)
结果一无所获。
此外,如果我使用
subset(uspopchange, Change > 16.9)
它也起作用。
为什么会这样?为什么我需要用户rank()
来获取我的子集
顺便说一句:数据来自
install.packages("gcookbook")
没有Change
大于40的行。当您在子集()
中使用rank(Change)>40
时,它将根据Change
的值为您提供排名高于40的行。由于您的数据中有50行(Change
的长度为50),因此您将得到排名为41、42、43等的行,50.
> Top10 <- subset(uspopchange, rank(Change)>40)
> Top10[order(Top10$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
11 Georgia GA South 18.3
10 Florida FL South 17.6
6 Colorado CO West 16.9
41 South Carolina SC South 15.3
##
> uspopchange[order(uspopchange$Change,decreasing=TRUE),][1:10,]
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
11 Georgia GA South 18.3
10 Florida FL South 17.6
6 Colorado CO West 16.9
41 South Carolina SC South 15.3
>Top10(40)
>Top10[订单(Top10$Change,递减=TRUE),]
国家区域变化
内华达州西29 35.1
3亚利桑那州西24.6
犹他州犹他州西部45号23.8
13爱达荷州西21.1
德克萨斯州南部44 20.6
34北卡罗来纳州南部18.5
11乔治亚州南18.3
佛罗里达州南部10号17.6
6科罗拉多州西部16.9
41南卡罗来纳州南部15.3
##
>uspopchange[订单(uspopchange$Change,递减=真),][1:10,]
国家区域变化
内华达州西29 35.1
3亚利桑那州西24.6
犹他州犹他州西部45号23.8
13爱达荷州西21.1
德克萨斯州南部44 20.6
34北卡罗来纳州南部18.5
11乔治亚州南18.3
佛罗里达州南部10号17.6
6科罗拉多州西部16.9
41南卡罗来纳州南部15.3
这些是等价的。在您的示例数据中,这将是一个空子集,不是吗?
Change
列中没有一个大于40。您能用文字说明所需的子集是什么吗?你能用语言解释一下你认为rank()做了什么,以及在subset()的上下文中Change>40意味着什么吗?实际上你是对的,我没有注意到这一点。我是从课本上的一个例子开始工作的。回答你的问题,我不知道排名是什么。我试着读了一遍,但我仍然不能完全确定那个带有秩的子集想要做什么
> Top10 <- subset(uspopchange, rank(Change)>40)
> Top10[order(Top10$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
11 Georgia GA South 18.3
10 Florida FL South 17.6
6 Colorado CO West 16.9
41 South Carolina SC South 15.3
##
> uspopchange[order(uspopchange$Change,decreasing=TRUE),][1:10,]
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
11 Georgia GA South 18.3
10 Florida FL South 17.6
6 Colorado CO West 16.9
41 South Carolina SC South 15.3