最终,我希望创建一个表,其中包含我在数据集中拥有的每个唯一 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"))
提前感谢您的帮助!