如何在 R 数据框中创建组列?

假设我们有一个名为 df 的数据框,其中包含两列 X 和 Y,那么我们可以通过将 df 转换为data.table对象并使用 list 函数在 X 和 Y 中创建值列表来创建基于 X 和 Y 的组列。

查看以下示例以了解如何完成。

示例 1

以下代码段创建了一个示例数据框 -

x1<-rpois(20,2)

x2<-rpois(20,2)

df1<-data.frame(x1,x2)

df1

创建了以下数据框

  x1 x2

1  1 5

2  1 1

3  0 1

4  1 1

5  2 1

6  2 3

7  4 2

8  0 4

9  2 1

10 2 2

11 0 1

12 3 1

13 3 3

14 4 3

15 2 0

16 1 3

17 2 1

18 3 1

19 5 1

20 3 2

要data.table在上面创建的数据框中加载对象并为 df1 中的值创建组列,请将以下代码添加到上面的代码段中 -

x1<-rpois(20,2)

x2<-rpois(20,2)

df1<-data.frame(x1,x2)

library(data.table)

setDT(df1)[,Group:=.GRP,by=list(x1,x2)]

df1

输出结果

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

   x1 x2 Group

1:  1  5 1

2:  1  1 2

3:  0  1 3

4:  1  1 2

5:  2  1 4

6:  2  3 5

7:  4  2 6

8:  0  4 7

9:  2  1 4

10: 2 2  8

11: 0 1  3

12: 3 1  9

13: 3 3 10

14: 4 3 11

15: 2 0 12

16: 1 3 13

17: 2 1  4

18: 3 1  9

19: 5 1 14

20: 3 2 15

示例 2

以下代码段创建了一个示例数据框 -

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

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

df2<-data.frame(y1,y2)

df2

创建了以下数据框

  y1 y2

1  B C

2  B D

3  D C

4  D B

5  A B

6  D A

7  A C

8  A C

9  D B

10 C C

11 A A

12 C D

13 B C

14 C C

15 A A

16 D B

17 B A

18 C B

19 C B

20 C B

要在上面创建的数据框中为 df2 中的值创建组列,请将以下代码添加到上面的代码段中 -

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

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

df2<-data.frame(y1,y2)

setDT(df2)[,Group:=.GRP,by=list(y1,y2)]

df2

输出结果

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

  y1 y2 Group

1:  B C  1

2:  B D  2

3:  D C  3

4:  D B  4

5:  A B  5

6:  D A  6

7:  A C  7

8:  A C  7

9:  D B  4

10: C C  8

11: A A  9

12: C D 10

13: B C  1

14: C C  8

15: A A  9

16: D B  4

17: B A 11

18: C B 12

19: C B 12

20: C B 12

以上是 如何在 R 数据框中创建组列? 的全部内容, 来源链接: utcz.com/z/335456.html

回到顶部