如何在 R 数据框中查找具有相同名称的列的每一行的总和?
要查找 R 数据框中具有相同名称的列的每一行的总和,我们可以按照以下步骤操作:
首先,创建一个数据框,其中包含一些具有相同名称的列。
然后,使用 tapply 以及 colnames 和 sum 函数来查找具有相同名称的列的每一行的总和。
示例
创建数据框
让我们创建一个如下所示的数据框:
df<- data.frame(x=rpois(25,1),y=rpois(25,10),x=rpois(25,5),y=rpois(25,5),check.names=FALSE) df
输出
执行上述脚本后,将生成以下输出(由于随机化,此输出在您的系统上可能会有所不同):
x y x y 1 3 14 5 8 2 1 13 8 9 3 0 12 11 6 4 1 11 5 6 5 0 4 6 4 6 1 8 3 7 7 0 5 4 7 8 0 8 5 4 9 1 8 5 8 10 3 12 6 2 11 0 15 8 3 12 3 18 4 3 13 1 14 4 6 14 1 11 6 6 15 2 21 2 6 16 2 9 6 6 17 0 12 4 8 18 2 6 10 4 19 2 10 4 5 20 3 10 7 3 21 0 6 11 5 22 0 11 2 4 23 1 4 2 8 24 0 9 4 3 25 1 5 4 7
查找具有相同名称的列的每一行的总和
使用 tapply 以及 colnames 和 sum 函数来查找数据框 df 中具有相同名称的列的每一行的总和:
df<- data.frame(x=rpois(25,1),y=rpois(25,10),x=rpois(25,5),y=rpois(25,5),check.names=FALSE) t(apply(df,1, function(x) tapply(x,colnames(df),sum)))
输出
x y [1,] 8 22 [2,] 9 22 [3,] 11 18 [4,] 6 17 [5,] 6 8 [6,] 4 15 [7,] 4 12 [8,] 5 12 [9,] 6 16 [10,] 9 14 [11,] 8 18 [12,] 7 21 [13,] 5 20 [14,] 7 17 [15,] 4 27 [16,] 8 15 [17,] 4 20 [18,] 12 10 [19,] 6 15 [20,] 10 13 [21,] 11 11 [22,] 2 15 [23,] 3 12 [24,] 4 12 [25,] 5 12
广告