如何将 data.table 对象中的相应行值与 R 中的单行 data.table 对象相乘?

要将data.table具有多行的对象中的行值与data.tableR 中的单行对象相乘,我们可以按照以下步骤操作 -

  • 首先,创建一个data.table多行data.table对象和一个单行对象。

  • 然后,使用 mapply 函数将这些对象中的行值相乘。

示例

创建第一个data.table对象

让我们创建一个data.table对象,如下所示 -

library(data.table)

x1<-sample(1:10,25,replace=TRUE)

x2<-sample(1:10,25,replace=TRUE)

DT1<-data.table(x1,x2)

DT1

输出结果

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

     x1 x2

1:   8  1

2:   4  2

3:   8  5

4:   4  1

5:  10  2

6:   5 10

7:   9  3

8:   6  5

9:   1  6

10:  7  1

11:  9  7

12:  8  9

13:  4 10

14: 10  6

15:  1  4

16:  8  1

17: 10  4

18:  7  1

19:  3  1

20:  3  7

21:  2  8

22:  4  9

23:  5  8

24:  4  7

25:  3  1

    x1 x2

创建第二个data.table对象

让我们创建一个data.table对象,如下所示 -

DT2<-data.table(y1=5,y2=0)

DT2

输出结果
   y1 y2

1: 5  0

将两个data.table对象的值相乘

使用 mapply 函数将data.table具有多行的对象 DT1 中的行值与单行data.table对象 DT2相乘-

library(data.table)

x1<-sample(1:10,25,replace=TRUE)

x2<-sample(1:10,25,replace=TRUE)

DT1<-data.table(x1,x2)

DT2<-data.table(y1=5,y2=0)

mapply(`*`,DT1,DT2)

输出结果
       x1 x2

[1,]   40 0

[2,]   20 0

[3,]   40 0

[4,]   20 0

[5,]   50 0

[6,]   25 0

[7,]   45 0

[8,]   30 0

[9,]    5 0

[10,]  35 0

[11,]  45 0

[12,]  40 0

[13,]  20 0

[14,]  50 0

[15,]   5 0

[16,]  40 0

[17,]  50 0

[18,]  35 0

[19,]  15 0

[20,]  15 0

[21,]  10 0

[22,]  20 0

[23,]  25 0

[24,]  20 0

[25,]  15 0

以上是 如何将 data.table 对象中的相应行值与 R 中的单行 data.table 对象相乘? 的全部内容, 来源链接: utcz.com/z/331666.html

回到顶部