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