||
本期话题,我们来探讨一下Excel中各种结构的数据块的转型。
这方面有一本很厚的教科书,叫《Excel函数与公式速查宝典》,但给出的方法冗长、繁杂。因此,在这里总结一下最简捷的操作方案。
(1)从最简单的开始:行列互变,复制→选择性粘贴→转置。
(2)补齐记录空白:选中需填充空值的列→查找→定位条件→空值→输入“= A格地址”→Ctrl+Enter。这里的A格,指的是选中空值之后,最左上方的第一个空值上方的那一格,注意,引用的是地址,不是内容。
(3)多列转一列(用tocol函数最为简捷。例如,要把A1:B2区域转成C列的样子):
(4)一列转多列,用wrapcols或wraprows函数。例如,要把A列转成右侧的B、C列或者B、C、D列的形式,函数如下:
上面函数中的Wrap_count参数,指的是原数列几个数分为一行或一列。
(4)多列转一行。
(5)增、删空列
5.1 间隔插入n个空行:构建与数据相同行数的自然数辅助列→复制后向下粘贴n次→升序排列辅助列(扩展)→删除辅助列。
5.2 删除空行(不破坏原行序):自然数辅助列→选中原数据列→排序和筛选→升序→删空行→按辅助列升序→删除辅助列。
(6)三角矩阵数据 转 对称矩阵数据
选中原三角矩阵,复制,找一片荒无人烟、绝对影响不到数值计算的区域,右键→选择性粘贴→勾选转置。
然后,复制刚才转置后的上三角矩阵,光标定位到原三角矩阵最左上角,右键→选择性粘贴→勾选“跳过空单元”。如果不执行“跳过空单元”,正对角线上的元素是很难处理的。
操作简单,不再给出图解。
(7)矩阵对角元素和列的互转
7.1 提取对角线上的元素并转为一列(要求行列数必须相等才能提取)
说实话,上面这种解决方案,我找了很久没有找到,期望看到这篇博文的同学惠存。第G列index函数的最后一个参数,指的是excel本身中行的序号。
7.2 提取一列数据并转为对角线(Munit即单位矩阵函数,自带溢出功能)
注:上面表格的灰色部分,是Excel本身的行与列,橙色的部分是待转的原数据,绿色部分是转换成的数据结构。公式是用=formulatext()给出的。
现在在Excel中,还有个比较吃力的问题,就是奇异值的分解,中外网站均找不到解决方案(印度一个女学者给出了方法,但试了试不管用)。
如果你在微软必应上搜索一下“real statistics using Excel”,会发现一个大牛Charles Zaiontz,居然依赖Excel工具,将主成分分析、判别分析、聚类分析、对应分析、Logit回归、Shapiro-Wilk检验等,全部用笨办法拿下。不过,这样的“笨”办法也确实能够锻炼基本的统计技能。
单纯依赖SPSS、Origin、Mathlab、SAS、R等,容易产生一些“垃圾进、垃圾出”的科研结论。我认为,统计学的初级阶段,是使用这些软件一气呵成,中级阶段是了解了各种统计方法的前提,高级阶段应当脱离统计软件,依赖最基本的Excel去完成,才能了解各种统计方法的来龙去脉。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-24 14:27
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社