R中的state.division索引
我被要求使用state.x77数据集,查找state.division定义的每个部门的最低收入,然后使用state.name查找位于新英格兰的具有最低收入的州的名称。我得到了一些奇怪的答案。有人知道我做错了什么吗R中的state.division索引,r,indexing,state,R,Indexing,State,我被要求使用state.x77数据集,查找state.division定义的每个部门的最低收入,然后使用state.name查找位于新英格兰的具有最低收入的州的名称。我得到了一些奇怪的答案。有人知道我做错了什么吗 x <- tapply(state.x77$Income, state.division, min) x New England Middle Atlantic South Atlantic East South Central 3694
x <- tapply(state.x77$Income, state.division, min)
x
New England Middle Atlantic South Atlantic East South Central
3694 4449 3617 3098
West South Central East North Central West North Central Mountain
3378 4458 4167 3601
Pacific
4660
x1 <- tapply(state.x77$Income, state.name[state.division], min)
x1
Alabama Alaska Arizona Arkansas California Colorado
3694 4449 3617 3098 3378 4458
Connecticut Delaware Florida
4167 3601 4660
x我个人倾向于直接选择dplyr
,您可以使用
library(dplyr)
result <- state.x77 %>%
group_by(state.division) %>%
filter(Income == min(Income))
如果只需要一个最小值行
如果只想使用基本软件包,可以尝试将ave()
与min
一起使用:
state.x77[state.x77$Distance == ave(state.x77$Income, state.x77$state.division, FUN = min), ]
这是你的作业吗?如果是这样的话,你的老师有没有教过你dplyr的groupby和filter?我并没有这么多地使用它们。我认为我们需要使用state.division和state.name。否则,我认为我们对任何事情都持开放态度。
state.x77[state.x77$Distance == ave(state.x77$Income, state.x77$state.division, FUN = min), ]