如何在R的data.table物件中查詢具有相同名稱的列的每行總和?
為了在R的data.table物件中查詢具有相同名稱的列的每行總和,我們可以按照以下步驟操作:
首先,建立一個包含一些具有相同名稱的列的data.table。
然後,使用tapply以及colnames和sum函式來查詢具有相同名稱的列的每行總和。
示例
建立data.table
讓我們建立一個如下所示的data.table:
library(data.table) DT<- data.table(x=rpois(25,5),y=rpois(25,10),x=rpois(25,5),y=rpois(25,2),check.names=FALSE) DT
輸出
執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出在您的系統上可能會有所不同):
x y x y 1: 5 13 8 4 2: 1 12 1 4 3: 3 12 7 2 4: 5 12 4 1 5: 3 12 6 4 6: 9 7 5 3 7: 5 10 7 3 8: 4 11 4 1 9: 3 12 3 3 10: 8 11 5 0 11: 3 9 6 3 12: 5 14 3 2 13: 6 10 5 0 14: 4 12 10 3 15: 4 9 4 1 16: 9 7 1 1 17: 5 13 7 2 18: 4 8 3 0 19: 5 16 1 5 20: 5 14 4 1 21: 5 11 11 1 22: 4 5 3 2 23: 6 11 4 2 24: 7 5 5 2 25: 9 18 4 0 x y x y
查詢具有相同名稱的列的每行總和
使用tapply以及colnames和sum函式來查詢data.table物件DT中具有相同名稱的列的每行總和:
library(data.table) DT<- data.table(x=rpois(25,5),y=rpois(25,10),x=rpois(25,5),y=rpois(25,2),check.names=FALSE) t(apply(DT,1, function(x) tapply(x,colnames(DT),sum)))
輸出
x y [1,] 13 17 [2,] 2 16 [3,] 10 14 [4,] 9 13 [5,] 9 16 [6,] 14 10 [7,] 12 13 [8,] 8 12 [9,] 6 15 [10,] 13 11 [11,] 9 12 [12,] 8 16 [13,] 11 10 [14,] 14 15 [15,] 8 10 [16,] 10 8 [17,] 12 15 [18,] 7 8 [19,] 6 21 [20,] 9 15 [21,] 16 12 [22,] 7 7 [23,] 10 13 [24,] 12 7 [25,] 13 18
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP