如何找到 data.table 对象的分组公共值?

要找到data.table对象的分组公共值,我们可以使用 Reduce 函数和 intersect 函数。

例如,如果我们有一个data.table名为 DT的对象,其中包含一个数字列 Num 和一个分类列 C,其中 C 存在于第一个位置,那么可以使用下面给出的命令找到分组公共值 -

Reduce(intersect,DT[,.(list(unique(Num))),C]$V1)

示例

考虑以下data.table对象 -

Group<-sample(LETTERS[1:4],20,replace=TRUE)

Rate<-rpois(20,1)

library(data.table)

DT1<-data.table(Group,Rate)

DT1

输出

创建以下数据框 -

   Group Rate

1:  A    4

2:  C    0

3:  D    0

4:  C    0

5:  A    3

6:  A    1

7:  D    1

8:  B    0

9:  A    1

10: A    0

11: C    3

12: B    2

13: B    1

14: C    2

15: D    3

16: B    1

17: A    0

18: C    1

19: A    1

20: C    1

为了找到 Group 列中所有组的 Rate 的分组公共值,将以下代码添加到上面的代码片段中 -

示例

Reduce(intersect,DT1[,.(list(unique(Rate))),Group]$V1)
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

[1] 1 0

示例

考虑以下data.table对象 -

Category<-sample(c("I","II","III"),20,replace=TRUE)

Rank<-sample(1:3,20,replace=TRUE)

DT2<-data.table(Category,Rank)

DT2

输出

创建以下数据框 -

  Category Rank

1:    I    1

2:  III    2

3:  III    3

4:    I    2

5:    I    3

6:  III    3

7:  III    2

8:  III    2

9:  III    2

10:  II    3

11: III    2

12:  II    1

13: III    1

14:  II    3

15:   I    1

16: III    2

17: III    1

18:  II    1

19:   I    1

20: III    3

要查找 Category 列中所有组的 Rank 的分组公共值,请将以下代码添加到上述代码段中 -

示例

Reduce(intersect,DT2[,.(list(unique(Rank))),Category]$V1)
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

[1] 1 3

示例

考虑以下data.table对象 -

Class<-sample(c("First","Second","Third"),20,replace=TRUE)

Score<-sample(0:2,20,replace=TRUE)

DT3<-data.table(Class,Score)

DT3

输出

创建以下数据框 -

    Class  Score

1:  First   2

2:  Second  0

3:  First   1

4:  Third   2

5:  Second  1

6:  Third   1

7:  Third   0

8:  Third   1

9:  Third   2

10: Third   1

11: Second  0

12: Third   0

13: First   2

14: First   1

15: First   1

16: First   0

17: Second  2

18: Second  2

19: First   0

20: Second  1

要查找 Class 列中所有组的 Score 的分组公共值,请将以下代码添加到上述代码段中 -

示例

Reduce(intersect,DT3[,.(list(unique(Score))),Class]$V1)
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

[1] 2 1 0

以上是 如何找到 data.table 对象的分组公共值? 的全部内容, 来源链接: utcz.com/z/354377.html

回到顶部