如何在 R 中将 data.table 对象中的对应行值与单行 data.table 对象相乘?
r programmingserver side programmingprogramming更新于 2025/4/8 3:07:17
要在 R 中将多行 data.table 对象中的行值与单行 data.table 对象相乘,我们可以按照以下步骤操作 −
首先,创建一个多行 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
输出
执行时,上述脚本将生成以下输出(由于随机化,此输出将因您的系统而异) −
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