【问题标题】:state.divsion index in RR中的状态划分索引
【发布时间】:2017-08-24 21:04:25
【问题描述】:

我被要求使用 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               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

【问题讨论】:

  • 这是你的作业吗?如果是这样,你的老师有没有教你关于 dplyr 的 groupby 和 filter?
  • 我没怎么用过。我认为我们需要使用 state.division 和 state.name。否则,我认为我们对任何事情都持开放态度。

标签: r indexing state


【解决方案1】:

我个人倾向于直接选择dplyr,您可以在其中使用任何一个

library(dplyr)
result <- state.x77 %>% 
    group_by(state.division) %>%
    filter(Income == min(Income)) 

如果您想保留所有最小值行(例如,如果有两个最小值)或

state.x77 %>% 
    group_by(state.division) %>%
    slice(which.min(Income))

如果您只想要一个最小值行。

如果您只想使用基本包,可以尝试使用ave() 和min:

state.x77[state.x77$Distance == ave(state.x77$Income, state.x77$state.division, FUN = min), ]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 2020-03-14
    • 1970-01-01
    • 2020-03-26
    相关资源
    最近更新 更多