R 是以行来排列资料的语言,举例来说:先建一 3X4 的二维矩阵。

>x <- matrix(1:12,3,4); x

矩阵中的资料预设就是依序以行来排列完成。今欲计算每列四笔资料的平均数与
中位数,运用 apply 函数如下:

>myMeanNMedian <- function(x) c(mean(x), median(x))
>y <- apply(x, 1, myMeanNMedian); y

读者可看到各列的平均数与中位数也是以纵行的方式依序排列。apply 函数也可
以计算每行三笔资料的平均数与中位数:

>z <- apply(x, 2, myMeanNMedian);z

 

此处各行的平均数与中位数还是以纵行的方式依序排列。了解其排列方式后我们
可以将其各列与各行命名:

>dimnames(y)[[1]] <- c('Mean', 'Median')
>dimnames(y)[[2]] <- c(paste('Row', 1:3, sep=' '))
>dimnames(z)[[2]] <- c(paste('Column', 1:4, sep=' '))

也可以将 y 转置一下,

>t(y)

y 与 t(y)哪一种呈现方式较符合您的直觉呢?


资料来源:Spector, P. (2008), Data Manipulationwith R,Springer.

撰文者:
邹庆士 博士
现任:
北商资讯与决策科学所教授
中华 R 软体学会理事长
信箱:
[email protected]

相关文章