2

我目前正在借助 coursera 上的视频学习 R。当试图排除所有医院表格少于 20 个的州医院时,由于缺乏 R 的编程知识,我无法找到正确的解决方案(因为我有很多程序C,我试图实现的逻辑R也像C)

我用过的代码就像

>test <- read.csv("outcome-of-care-measures.csv", colClasses = "character")
>test[, 11] <- as.numeric(outcome[, 11])
>test2 <- table(outcome$State)

从表中test2,我可以得到特定行的值,test2[[2]]但无法找出如何使用条件逻辑来获取少于 20 家医院的状态(如果我得到状态名称,那么我可以使用子集()来解决实际问题)。我也看过dimnames()功能,但可以找到解决我问题的任何想法。所以我的问题是,在 R 中,我如何使用表值检查阈值。

价值存储test2

 AK  AL  AR  AZ  CA  CO  CT  DC  DE  FL  GA  GU  HI  IA  ID  IL  IN  KS  KY  LA  MA  MD  ME 
 17  98  77  77 341  72  32   8   6 180 132   1  19 109  30 179 124 118  96 114  68  45  37 
 MI  MN  MO  MS  MT  NC  ND  NE  NH  NJ  NM  NV  NY  OH  OK  OR  PA  PR  RI  SC  SD  TN  TX 
134 133 108  83  54 112  36  90  26  65  40  28 185 170 126  59 175  51  12  63  48 116 370 
 UT  VA  VI  VT  WA  WI  WV  WY  ##State Name
 42  87   2  15  88 125  54  29  ##Count of Hospital
4

2 回答 2

3

正如Arun在他的评论中所指出的那样......你可以这样做names(test2[test2 >= 20]),以便获得高于 20 家医院的状态......是一个很好的解释,为什么你必须避免subset

于 2013-02-01T17:51:39.197 回答
2

或者您可以将您的表格转换为 data.frame 并使用subset

dat <- as.data.frame(test2)
subset(dat, Freq < 20)
   nn Freq
1  AK   17
8  DC    8
9  DE    6
12 GU    1
13 HI   19
42 RI   12
49 VI    2
50 VT   15
于 2013-02-01T16:23:06.523 回答