R语言学习笔记

《R语言实战》学习笔记---Chapter5(9) 高级数据管理

2023-08-25  本文已影响0人  RSP小白之路

转置

转置,也就是行变列,列变行。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自带函数,也可以是自编函数。

上一篇 下一篇

猜你喜欢

热点阅读