用R语言实现科研数据高效预处理(二)练习题

文摘   2024-12-31 08:15   荷兰  

我们在第二期讲了有关矩阵的知识,还没有学习的读者可以点击以下链接跳转阅读:

用R语言实现科研数据高效预处理(二)

在这篇文章中,我们将会通过一些练习来巩固已经学习的知识。这些练习题中的部分问题可能是我并没有在第二期讲解部分提到的,但是我认为这些练习也值得学习,所以也添加了进来。


练习题

以下练习均可通过一行代码完成!

a) 请使用matrix()函数生成一个5*5的矩阵mat1,该矩阵中包含从150的所有奇数;本题不明确要求元素需按列排布还是按行排布(也不会影响后续解题),但请自行探索并确认matrix()的默认排布方式;

b) 请使用至少三种不同的索引方式,来索引mat1右下角的四个元素(每种索引方式对应一行代码);

c) mat1中的每一个元素都加上xx为该元素所在行的行数。例如,1在第一行,我们就对其加上149在第5行,我们就对其加上5

d) (Challenging) mat1中的每一个元素都加上yy为该元素所在列的列数;

e) 请使用至少两种方式计算mat1每一列的和,以及mat1每一行的和;

f) (Challenging) 接下来我们需要使用R语言自带的HairEyeColor数据集,在R语言中直接输入该名字即可查看该数据集:

> HairEyeColor, , Sex = Male EyeHair Brown Blue Hazel Green Black    32   11    10     3 Brown    53   50    25    15 Red      10   10     7     7 Blond     3   30     5     8, , Sex = Female EyeHair Brown Blue Hazel Green Black    36    9     5     2 Brown    66   34    29    14 Red      16    7     7     7 Blond     4   64     5     8

请利用apply()函数生成一个头发颜色X眼睛颜色的频数表HairEye(表中包含每种头发颜色与眼睛颜色组合的频数),参考结果如下:

> HairEye EyeHair Brown Blue Hazel Green Black    68   20    15     5 Brown   119   84    54    29 Red      26   17    14    14 Blond     7   94    10    16

g) 在频数表HairEye中,最大的三个值可以通过以下命令获得:

> c(HairEye["Brown","Brown"],HairEye["Blond","Blue"],HairEye["Brown","Blue"])[1] 119 94  84

请使用我们讲解过的另一种方式(仍旧使用字符索引)来获取相同的结果;

h) (Challenging) HairEye 的单元格重新排列,使得行总和和列总和都按照降序排列,参考结果如下:   

 EyeHair Brown Blue Hazel Green Brown   119   84    54    29 Blond     7   94    10    16 Black    68   20    15     5 Red      26   17    14    14


答案

PsychoStatisticia
一个统计学研究者的个人天地
 最新文章