【发布时间】:2017-10-04 20:35:50
【问题描述】:
我有一个大数据框(4631 行 x 2995 列)。行代表美国所有医院的邮政编码,列代表患者的邮政编码。我计算了患者家拉链和医院之间的距离,因此每个单元格值都是一个数值,表示每个患者家和每家医院之间的英里数。
一个例子 df 是:
10960 11040 56277 55379
37160 674.14 238.04 25.89 5.31
37091 162.62 71.25 428.56 672.11
89148 931.31 0.03 389.25 1000.05
91776 15.05 508.74 315.61 101.01
我现在要做的是为每个患者提取最低的五个值,这将代表每个患者最近的五个医院。但我不仅需要提取单元格值,还需要行名,以便知道这些医院所在的邮政编码。
因此,例如,如果我只为每个患者/列寻找最低的两个值,我想知道对于患者 10960,最近的医院在 15.05 英里外,邮政编码为 91776,第二个最近的医院在 162.62 英里外,邮政编码为 37091。
我已经转置了这些数据,所以如果通过交换行和列来更容易做到这一点,这对我来说很好。我不需要代码来做到这一点。
我已经找到了使用函数和应用等获取最低值的方法,但它没有给我相应的邮政编码。
如果有任何帮助,我将不胜感激!
谢谢!
【问题讨论】:
-
您能举一个数据集样本的例子吗?也许像
dput(df[1:10, 1:5])这样的东西?邮政编码和患者代码分别只是行名和列名吗? -
抱歉,我不确定我是否理解您要求的示例类型。是的,医院邮政编码是行名,患者代码是列名,单元格值是医院和患者家庭邮政编码之间的英里数。病人的拉链在另一个数据集中,这个数据框只是我的距离分析的输出,我计算了医院拉链和病人拉链之间的距离。
标签: r sorting dplyr lapply sapply