【发布时间】:2015-06-29 14:49:31
【问题描述】:
我仍然无法知道如何访问拆分数据的不同元素。这是我的问题: 我有一个数据集,我想根据一列(状态)进行拆分。我想为每个子集添加一个排名列到我的数据中。这是我正在编写的函数的一部分。 我的数据集有 2 列,医院、状态、结果。对于每个州,我想添加一个“排名”列,根据结果对数据进行排名;结果最低的将排名第一,最高的结果将排名最后。
如何使用 split、sapply/lapply 来执行此操作?有没有更好的方法,比如使用“安排”? 我的主要问题是,当我使用这两种方法中的任何一种时,我都不知道如何访问拆分或排列数据的每个元素。 这是我的数据集的样子: 医院状态结果。行线在这里并不重要。
Hospital State Outcome
1 SOUTHEAST ALABAMA MEDICAL CENTER AL 14.3
2 MARSHALL MEDICAL CENTER SOUTH AL 18.5
3 ELIZA COFFEE MEMORIAL HOSPITAL TX 18.1
7 ST VINCENT'S EAST TX 17.7
8 DEKALB REGIONAL MEDICAL CENTER AL 18.0
9 SHELBY BAPTIST MEDICAL CENTER AL 15.9
期望的结果是
Hospital State Outcome Rank
1 SOUTHEAST ALABAMA MEDICAL CENTER AL 14.3 1
2 SHELBY BAPTIST MEDICAL CENTER AL 15.9 2
3 DEKALB REGIONAL MEDICAL CENTER AL 18.0 3
4 MARSHALL MEDICAL CENTER SOUTH AL 18.5 4
5 ST VINCENT'S EAST TX 17.7 1
6 ELIZA COFFEE MEMORIAL HOSPITAL TX 18.1 2
提前致谢。
【问题讨论】:
-
我不知道您所说的“我不知道如何访问”是什么意思。有许多方法可以对数据框的行和列进行子集化和访问(我假设您正在将其读入数据框)。也许如果你举一个你期望看到的例子。
-
也许您希望按州等汇总数据?然后你想看看 ddply 包或类似的东西。
-
对。那只是我数据的一个样本,而且恰好都处于一个状态。我在帖子中对此进行了更改,以便您更好地了解它是什么。
-
@MikeWise 我的意思是,当我在此示例中基于状态拆分数据集并将其命名为 s 时,s[1] 将显示与第一个“状态”相关的所有行.我不知道如何在每个数据集中提取不同的行甚至一行的不同列。因此,如果 s[1] 有 50 行来自纽约,s[2] 有 32 行来自 WY,我不知道如何访问每个子集中的各个行,假设 s[1] 中的第 i 行。
-
@AsiehHarati 我认为迈克关于“访问”的问题是基于您所说的含糊不清。
split是一个 R 函数,我们不知道你是指它还是只是某种子集...如果s=split(DF,DF$state),你会指s[[1]]而不是s[1],例如。
标签: r