【发布时间】:2019-06-10 15:58:37
【问题描述】:
最终,我希望创建一个表,其中包含我在数据集中拥有的每个唯一 ID 以及相应字段,基于该字段的“排名”。
我一直非常坚持这一步。我考虑过为每个唯一 ID 循环,但想看看是否有更简单的方法。或许 apply 系列函数会有所帮助。我也不确定对不同字符串值进行排名的方法(例如,TRUE > FALSE > NA)。
下面是我正在查看的一个小样本,只有两个感兴趣的领域:
df1 <- data.frame(ID = c(1,1,2,2,3,3,3,4,4,5,6,7,7), flag = c("NA", "TRUE", "NA", "FALSE", "TRUE", "TRUE", "FALSE", "NA", "NA", "NA", "TRUE", "FALSE", "FALSE"))
对于每个 ID:
- 如果标志字段中至少有一个“TRUE”,我想拉出整个行中的一个(不管是哪一个)。
- 如果一个 ID 在标志字段中不包含“TRUE”值,但在至少一行中有“FALSE”,我想提取其中一整行。
- 如果 ID 在标志字段中没有“TRUE”或“FALSE”值,我仍需要“NA”行之一。
下面是我希望拥有的单独数据框:
ideal.df <- data.frame(ID = c(1,2,3,4,5,6,7), flag = c("TRUE", "FALSE", "TRUE", "NA", "NA", "TRUE", "FALSE"))
提前感谢您的帮助!
【问题讨论】:
-
如果这是一个重复的问题,我深表歉意 - 我在概念化这个问题时遇到了麻烦,所以很可能是这样。但是@Ronak-Shah 提供的答案正是我所需要的,并且看起来与您链接到的问题的答案完全不同。
-
没关系。这是我们得到每组第一行的问题之一。我认为这是一个骗局。通常情况下,它将被关闭,因为它由于简单的技术性而重新打开,我用一个修改过的答案取消删除了我之前发布的答案。
-
@akrun - 感谢您的澄清
-
没问题。请注意,重复标记并不是一件坏事。它使将来更容易找到类似的帖子。所以,我只是在为 SO 和所有其他在未来搜索类似帖子的人提供良好的撒玛利亚人服务,
标签: r match unique ranking-functions