如何使用R从与另一列中的ID关联的列范围中仅选择特定的唯一值
在上面的图片中,我只希望每个ID对应每个条件的单个值,使每个ID对应一行。这样,每个ID对应一行,每个条件下对应1或0。谢谢这可以通过使用dplyr软件包轻松完成如何使用R从与另一列中的ID关联的列范围中仅选择特定的唯一值,r,R,在上面的图片中,我只希望每个ID对应每个条件的单个值,使每个ID对应一行。这样,每个ID对应一行,每个条件下对应1或0。谢谢这可以通过使用dplyr软件包轻松完成 ID conditionA conditionB conditionC 1 1 0 0 1 0 0 1 1 0 0 0 2 1 0 1 2 0 1
ID conditionA conditionB conditionC
1 1 0 0
1 0 0 1
1 0 0 0
2 1 0 1
2 0 1 0
3 1 0 1
3 0 1 0
3 1 1 0
groupby()
将按ID
分组,然后summary()
fn操作将该ID
下的所有行合并为一行conditionA
将假定在该ID的所有行中找到的最大值,即,如果存在1,则它将是1;如果只存在0,则最大值为零。对于conditionB
,和conditionC
,基本R中的类似方法可以是聚合(.~ID,data,max)
,这些都是很好的答案,也很有效。但是,在我的数据中,我也有一些因子列。如果我想要一系列列的最大值,但同时也想要结果中的其余列,该怎么办?i、 e,max,但也获取其余列。谢谢,我认为如果我在组_by中添加其他列,这些列是日期和因素,然后在其余的数字列上使用summary和max,它也会起作用。
library(dplyr)
data %>%
group_by(ID) %>%
summarize(
conditionA = max(conditionA),
conditionB = max(conditionB),
conditionC = max(conditionC)
)