通过列r的变量名称进行子集化

时间:2014-05-29 00:43:10

标签: r

    row.names   Hospital                          State Heart Attack    Heart Failure
1   2275    PROVIDENCE MEMORIAL HOSPITAL            TX  16.1             9.1                 
2   2276    MEMORIAL HERMANN BAPTIST ORANGE HOSPITALTX  16.3            14.3       
4   2278    UNITED REGIONAL HEALTH CARE SYSTEM      TX  17.4            15.1    
5   2279    ST JOSEPH REGIONAL HEALTH CENTER        TX  15.7            15.6
6   2280    PARKLAND HEALTH AND HOSPITAL SYSTEM     TX  12.9            11.2    
7   2281    UNIVERSITY OF TEXAS MEDICAL BRANCH GAL  TX  17.4            11.8    

你好R窥视,我需要一个row.name,其中输入,即可变列名(心脏病发作或心力衰竭)是该列的最小值。

在例如,如果我输入"心力衰竭"它需要返回
[1] 2275
第一行中的哪一行。

到目前为止我得到了这个:
inds< -subset(wfperstate,wfperstate [[outname]] == min)

其中wfperstate是我的数据框
outname是我的输入

请,请帮助!

1 个答案:

答案 0 :(得分:1)

将我的上一个评论转换为函数:

get_min_rowname <- 
   function(dat,col)
     dat[which.min(dat[[col]]),"row.names"] 

然后你申请它:

get_min_rowname(wfperstate, "Heart Attack")
get_min_rowname(wfperstate, "Heart Failure")