如何在R中使用單行data.table物件乘以data.table物件的對應行值?
要將具有多行的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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP