转置
转置,也就是行变列,列变行。R中自带基础函数t(),可以对矩阵或者数据框进行结构重构。使用R中自带的数据集(数据框)mtcars进行演示:
> small <- mtcars[1:5, 1:6]
> print(small)
mpg cyl disp hp drat wt
Mazda RX4 21.0 6 160 110 3.90 2.620
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875
Datsun 710 22.8 4 108 93 3.85 2.320
Hornet 4 Drive 21.4 6 258 110 3.08 3.215
Hornet Sportabout 18.7 8 360 175 3.15 3.440
> t(small)
Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive Hornet Sportabout
mpg 21.00 21.000 22.80 21.400 18.70
cyl 6.00 6.000 4.00 6.000 8.00
disp 160.00 160.000 108.00 258.000 360.00
hp 110.00 110.000 93.00 110.000 175.00
drat 3.90 3.900 3.85 3.080 3.15
wt 2.62 2.875 2.32 3.215 3.44
之前在帮老师做PCA分析时,会用到t()函数进行表达矩阵的转置。
aggregate 函数整合数据
aggregate 函数我用的不多,书中说,
在R中使用一个或多个by变量和一个预先定义好的函数来折叠(collapse) 数据
使用格式如下:
aggregate(x, by, FUN)
x 是待折叠的数据集
by 是变量名列表,注意by 中的变量必须在一个列表中(即使只有一个变量)
fun 是一个描述性统计函数的函数名
试用书中的例子,根据气缸数和档位数对数据mtcars进行整合,
> aggregate(mtcars, by = list(mtcars$cyl, mtcars$gear), mean)
Group.1 Group.2 mpg cyl disp hp drat wt qsec vs am gear carb
1 4 3 21.500 4 120.1000 97.0000 3.700000 2.465000 20.0100 1.0 0.00 3 1.000000
2 6 3 19.750 6 241.5000 107.5000 2.920000 3.337500 19.8300 1.0 0.00 3 1.000000
3 8 3 15.050 8 357.6167 194.1667 3.120833 4.104083 17.1425 0.0 0.00 3 3.083333
4 4 4 26.925 4 102.6250 76.0000 4.110000 2.378125 19.6125 1.0 0.75 4 1.500000
5 6 4 19.750 6 163.8000 116.5000 3.910000 3.093750 17.6700 0.5 0.50 4 4.000000
6 4 5 28.200 4 107.7000 102.0000 4.100000 1.826500 16.8000 0.5 1.00 5 2.000000
7 6 5 19.700 6 145.0000 175.0000 3.620000 2.770000 15.5000 0.0 1.00 5 6.000000
8 8 5 15.400 8 326.0000 299.5000 3.880000 3.370000 14.5500 0.0 1.00 5 6.000000
也即,每个气缸值分别和每个挡位值对应对数据进行分组,然后每组数据中的每个变量被计算了平均值。
fun可以是R自带函数,也可以是自编函数。
网友评论