如何按R中data.table对象的分类列提取唯一行?
如果我们在data.table对象中有分类数据并且某些值是重复的,那么我们可能希望从该对象中提取唯一的行。
要按data.table对象的分类列提取唯一行,我们可以使用 unique 函数并使用 by 参数定义列,如下例所示。要了解提取是如何完成的,请查看以下示例。
示例 1
以下代码段创建了一个data.table对象 -
library(data.table)grp<-sample(LETTERS[1:4],20,replace=TRUE)
Score<-rpois(20,5)
DT1<-data.table(grp,Score)
DT1
data.table创建以下对象 -
grp Score1: D 3
2: B 3
3: B 4
4: B 3
5: D 5
6: B 7
7: B 4
8: D 1
9: A 4
10: A 3
11: B 2
12: A 5
13: B 4
14: A 5
15: D 4
16: D 3
17: D 4
18: D 7
19: B 3
20: B 2
要提取 DT1 中的唯一行,请将以下代码添加到上述代码段中 -
unique(DT1,by=c("grp","Score"))输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
grp Score1: D 3
2: B 3
3: B 4
4: D 5
5: B 7
6: D 1
7: A 4
8: A 3
9: B 2
10: A 5
11: D 4
12: D 7
示例 2
以下代码段创建了一个data.table对象 -
Category<-sample(c("Low","Medium","High"),20,replace=TRUE)Price<-sample(1:10,20,replace=TRUE)
DT2<-data.table(Category,Price)
DT2
data.table创建以下对象 -
Category Price1: High 7
2: Medium 5
3: Low 1
4: Medium 5
5: Medium 5
6: Medium 8
7: Low 2
8: Medium 4
9: Medium 7
10: Medium 3
11: Medium 4
12: Medium 10
13: High 7
14: Medium 3
15: Low 8
16: Low 2
17: Low 6
18: Medium 2
19: High 6
20: High 4
要在 DT2 中提取唯一行,请将以下代码添加到上述代码段中 -
unique(DT2,by=c("Category","Price"))输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
Category Price1: High 7
2: Medium 5
3: Low 1
4: Medium 8
5: Low 2
6: Medium 4
7: Medium 7
8: Medium 3
9: Medium 10
10: Low 8
11: Low 6
12: Medium 2
13: High 6
14: High 4
以上是 如何按R中data.table对象的分类列提取唯一行? 的全部内容, 来源链接: utcz.com/z/354382.html