如何在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