R 从数据帧中提取重复行
我有一个我正在使用的大型数据框,前几行如下:R 从数据帧中提取重复行,r,dataframe,extraction,R,Dataframe,Extraction,我有一个我正在使用的大型数据框,前几行如下: Assay Genotype Sample Result 1 001 G 1 0 2 001 A 2 1 3 001 G 3 0 4 001 NA 1 NA 5 002 T
Assay Genotype Sample Result
1 001 G 1 0
2 001 A 2 1
3 001 G 3 0
4 001 NA 1 NA
5 002 T 1 0
6 002 G 2 1
7 002 T 2 0
8 002 T 4 0
9 003 NA 1 NA
总的来说,我将处理2000个样本,每个样本进行168次分析
我想提取的行,我有多个条目与相同的分析和样品。我希望生成的数据位于包含所有重复项的数据框中,并进行排序,以便重复项彼此相邻。根据上面的示例,结果如下所示:
Assay Genotype Sample Result
1 001 G 1 0
4 001 NA 1 NA
6 002 G 2 1
7 002 T 2 0
易于加载的演示数据:
df <- structure(list(Assay = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L), Genotype = structure(c(2L, 1L, 2L, NA, 3L, 2L, 3L, 3L, NA), .Label = c("A", "G", "T"), class = "factor"), Sample = c(1L, 2L, 3L, 1L, 1L, 2L, 2L, 4L, 1L), Result = c(0L, 1L, 0L, NA, 0L, 1L, 0L, 0L, NA)), .Names = c("Assay", "Genotype", "Sample", "Result"), class = "data.frame", row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9"))
导致:
> dup
Assay Sample
4 1 1
7 2 2
它需要一个简单的合并
,以获得所需的结果:
> merge(dup, df)
Assay Sample Genotype Result
1 1 1 <NA> NA
2 1 1 G 0
3 2 2 G 1
4 2 2 T 0
>合并(dup、df)
分析样本基因型结果
1不适用
211G0
3 2 G 1
4 2 T 0
> merge(dup, df)
Assay Sample Genotype Result
1 1 1 <NA> NA
2 1 1 G 0
3 2 2 G 1
4 2 2 T 0