如何在R语言中使用向量值依次与data.table对象的列相乘?
为了在R语言中使用向量值依次与data.table对象的列相乘,我们可以按照以下步骤操作:
首先,创建一个data.table对象。
然后,创建一个向量。
之后,使用t函数进行转置,并使用乘号*将向量值依次与data.table对象的列相乘。
示例1
创建data.table对象
让我们创建一个data.table对象,如下所示:
library(data.table) var1<-sample(1:10,25,replace=TRUE) var2<-sample(1:10,25,replace=TRUE) var3<-sample(1:10,25,replace=TRUE) DT1<-data.table(var1,var2,var3) DT1
输出
执行上述脚本后,将生成以下输出(由于随机化,此输出会在您的系统上有所不同):
var1 var2 var3 1: 9 8 4 2: 2 8 2 3: 7 8 10 4: 6 7 10 5: 2 5 9 6: 4 9 8 7: 8 1 6 8: 3 9 9 9: 10 2 4 10: 5 7 8 11: 2 5 7 12: 10 6 2 13: 9 3 9 14: 8 3 10 15: 4 3 9 16: 2 6 4 17: 4 10 4 18: 10 6 5 19: 2 9 5 20: 9 9 5 21: 7 8 1 22: 5 3 5 23: 6 10 4 24: 5 6 10 25: 2 1 5 var1 var2 var3
创建向量
让我们创建一个向量,如下所示:
v1<-c(10,10,10) v1
输出
[1] 10 10 10
将向量值依次与data.table对象的列相乘
使用t函数进行转置,并使用乘号*将v1的值依次与data.table对象DT1的列相乘,如下所示:
library(data.table) var1<-sample(1:10,25,replace=TRUE) var2<-sample(1:10,25,replace=TRUE) var3<-sample(1:10,25,replace=TRUE) DT1<-data.table(var1,var2,var3) v1<-c(10,10,10) t(t(DT1)*v1)
输出
var1 var2 var3 [1,] 90 80 40 [2,] 20 80 20 [3,] 70 80 100 [4,] 60 70 100 [5,] 20 50 90 [6,] 40 90 80 [7,] 80 10 60 [8,] 30 90 90 [9,] 100 20 40 [10,] 50 70 80 [11,] 20 50 70 [12,] 100 60 20 [13,] 90 30 90 [14,] 80 30 100 [15,] 40 30 90 [16,] 20 60 40 [17,] 40 100 40 [18,] 100 60 50 [19,] 20 90 50 [20,] 90 90 50 [21,] 70 80 10 [22,] 50 30 50 [23,] 60 100 40 [24,] 50 60 100 [25,] 20 10 50
示例2
创建data.table对象
让我们创建一个data.table对象,如下所示:
library(data.table) x<-sample(1:50,25) y<-sample(1:50,25) z<-sample(1:50,25) DT2<-data.table(x,y,z) DT2
输出
执行上述脚本后,将生成以下输出(由于随机化,此输出会在您的系统上有所不同):
x y z 1: 3 33 8 2 35 25 43 3: 9 22 36 4: 17 26 27 5: 32 7 29 6: 4 23 13 7: 31 5 37 8: 1 20 41 9: 50 17 20 10: 37 30 25 11: 44 10 4 12: 43 42 42 13: 2 18 3 14: 33 37 22 15: 36 32 15 16: 49 2 26 17: 39 48 33 18: 23 24 11 19: 26 29 34 20: 48 8 14 21: 40 35 9 22: 22 36 1 23: 12 14 40 24: 19 12 10 25: 13 9 7 x y z
创建向量
让我们创建一个向量,如下所示:
v2<-c(1,0.5,2) v2
输出
[1] 1.0 0.5 2.0
将向量值依次与data.table对象的列相乘
使用t函数进行转置,并使用乘号*将v2的值依次与data.table对象DT2的列相乘,如下所示:
library(data.table) x<-sample(1:50,25) y<-sample(1:50,25) z<-sample(1:50,25) DT2<-data.table(x,y,z) v2<-c(1,0.5,2) t(t(DT2)*v2)
输出
x y z [1,] 3 16.5 16 [2,] 35 12.5 86 [3,] 9 11.0 72 [4,] 17 13.0 54 [5,] 32 3.5 58 [6,] 4 11.5 26 [7,] 31 2.5 74 [8,] 1 10.0 82 [9,] 50 8.5 40 [10,] 37 15.0 50 [11,] 44 5.0 8 [12,] 43 21.0 84 [13,] 2 9.0 6 [14,] 33 18.5 44 [15,] 36 16.0 30 [16,] 49 1.0 52 [17,] 39 24.0 66 [18,] 23 12.0 22 [19,] 26 14.5 68 [20,] 48 4.0 28 [21,] 40 17.5 18 [22,] 22 18.0 2 [23,] 12 7.0 80 [24,] 19 6.0 20 [25,] 13 4.5 14
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP