运用R语言进行数据处理。
数据导入、数据结构、数据格式、数值处理、表格处理、日期处理、数字处理、缺失值与唯一值;
数据导入与导出
导入
- 要导入的数据必须存放在getwd()目录下
- Windows下路径要用斜杠
/
或者双反斜杠\\
|
|
–
|
|
导出
|
|
数据结构
数据整体结构
|
|
行列名称&重命名
|
|
–
|
|
列重新排序
|
|
长宽格式转换
|
|
数据行数、唯一值数
|
|
tidyr包
- gather — 宽数据转为长数据。类似于reshape2包中的melt函数
- spread — 长数据转为宽数据。类似于reshape2包中的cast函数
- unit — 多列合并为一列
- separate — 将一列分离为多列
|
|
–
|
|
数据格式
因子化
|
|
factor与as.factor的区别
as.factor(x) – 只能对整个数据/列进行转换,其中无法插入其他语法
|
|
数据格式索引
格式判断 | 格式转换 | 含义 |
---|---|---|
is.numeric( ) | as.numeric( ) | 数值格式 |
is.integer( ) | as.integer( ) | 整数 |
is.character( ) | as.character( ) | 字符串格式 |
is.factor( ) | as.factor( ) | 因子化 |
is.logical( ) | as.logical( ) | 逻辑值 |
as.Date(object, “format”) | 日期格式 | |
is.list( ) | as.list( ) | 列表 |
is.data.frame( ) | as.data.frame | 数据框格式 |
is.matrix( ) | as.matrix( ) | 矩阵格式 |
is.array( ) | as.array( ) | 数据组 |
is.vector( ) | as.vector( ) | 向量格式 |
double:数值型格式(双精度向量:保存更多的有效位数)
|
|
有效位数&小数位数
|
|
数据处理
绑定数据框
|
|
基础函数
funs
|
|
plyr包
- what :用来切割、计算、合并数据的包
- why :在一个函数内同时解决spilt-apply-combine的三个步骤
- Spilt:把要处理的数据分割成小的片段
- Apply:对每个小片段进行操作
- Combine:把片段重新组合
- how :
|
|
–
|
|
数值相关
创建
|
|
替换与返回
|
|
–
|
|
复杂替换:正则表达式
拆分
|
|
合并
|
|
cat( ) 与 paste( ) 相同与区别
- 区别:
- paste( ) 对应的列单独合并
- cat( ) 合并为一个单元格
123456 > paste(c("X","Y"),1:10,sep="")> # [1] "X1" "Y2" "X3" "Y4" "X5" "Y6" "X7" "Y8" "X9" "Y10">> cat(c("X","Y"),1:10,sep="")> # XY12345678910>
>
长度
|
|
字符规则
引用符 | 字符 | 含义 |
---|---|---|
Quotes | \n | newline;换行 |
Quotes | \r | carriage return |
Quotes | \t | tab;制表符 |
Quotes | \b | backspace;空格 |
Quotes | \a | alert (bell) |
Quotes | \f | form feed |
Quotes | \v | vertical tab |
Quotes | \ | backslash \ |
Quotes | \’ | ASCII apostrophe ‘(单引号) |
Quotes | \” | ASCII quotation mark “(双引号) |
Quotes | ` | ASCII grave accent (backtick) ` |
Quotes | \nnn | character with given octal code (1, 2 or 3 digits) |
Quotes | \xnn | character with given hex code (1 or 2 hex digits) |
Quotes | \unnnn | Unicode character with given code (1–4 hex digits) |
Quotes | \Unnnnnnnn | Unicode character with given code (1–8 hex digits) |
表格相关
返回指定子集 - 行
|
|
- vector-向量
123 > x <- x[num:num]> x <- x[c(num1,num2,num3)]>
>
- 矩阵/数组/数据框
123456789 > ## 一般选取> z <- z[i,j] / z[i, ] / z[, j]>> ## 连续选取> z[i:j, ] / z[ ,i:j] / z[i:j] # []方括号中无逗号出现,表示选取列> z[c("row","row") , ]> z[, c("col","col")]> z[c("col", "col")]>
>
- 列表
12 > x <- mylist[[ ]] # 其中规则与数据框中相同>
–
|
|
返回指定子集 - 列
|
|
–
|
|
更改数据/创建新变量
|
|
概述函数
|
|
分组与排序
|
|
–
|
|
管道函数
|
|
数据合并
|
|
数据拆分
|
|
数据划分
|
|
日期处理
|
|
数字处理
|
|
–
|
|
缺失值与唯一值
|
|
–
|
|
逻辑判断
|
|
R符号
常见符号
名称 | 作用 | 示例 |
---|---|---|
<- | 赋值符号 | |
/ | 转义符 | |
[ ] | 给定元素所处位置的数值 | a[c(2,4)] |
: | 用于表示一个数值序列 | a[2:6] |
[i,j] | 选择指定的行与列 | [i,] [,j] [i,j] [,] |
“” | 用于目录名、文件名、包 | |
‘ ‘ | 引用双引号的文字为文本时出现 | labs(title=’ positon=”fill” ‘) |
# | 用于注释。#之后出现的任何文本都会被R解释器忽视; 并且R只能对单行进行注释,故当出现多条命令符,需在每行前面加上# | |
$ | 选取一个给定数据框中的某个特定变量 | patientIDdata$age |
<<- | 特殊赋值符 | |
[[ ]] | 用于列表中选取对象 | mylist[[“ages”]] mylist[[2]] |
^或** | 求幂 | |
x% %y | 求余数(x mod y) 5%%2=1 | |
x% / %y | 整数除法。5%/2%=2 | |
== | 严格等于(在浮点型数值时慎用==) | 2+2==4 |
!= | 不等于 | |
!x | 非x | |
x∣y | x或y | |
x&y | x和y | |
isTRUE(x) | 测试x是否为TRUE | |
[,-1] [-1,] [,c(-2,-3)]/[,-c(2,3)] | 删除第一列 删除第一行 删除多列,两种表达方式均可 | mydata<-mydata[,-1] mydata<-mydata[,-c(2,3)] |
“[“ | 提取谋而对象一部分的函数,后跟序列数n;1表示该对象的第一部分; 2表示该对象的第二部分; |
R中常见表达式
符号 | 作用 | 示例 | 解释 | |
---|---|---|---|---|
~ | 分隔符号 | y~x+z+w | 左边-因变量/响应变量 右边-自变量/解释变量 | |
+ | 分隔预测变量 | |||
: | 预测变量的交互项 | y~x+z+x:z | ||
* | 所有可能交互项的表达方式 | y~xzw—y~x+z+w+x:z+x:w+z:w | ||
^ | 交互项的某个次数 | y~(x+z+w)^2—y~x+z+w+x:z+x:w+z:w | 交互项最高次为2次 | |
. | 包含除因变量之外的所有变量 | y~.—y~x+z+w | 当一个数据框包含y,x,z,w这四个变量时 | |
- | 减号,从等式中移除某个变量 | y~(x+z+w)^2-x:w— y~x+z+w+x:z+z:w | ||
-1 | 删除截距项 | y~x-1 | 拟合y在x上的回归,并强制直线通过原点 | |
I() 【大写的i】 | 从算术(而非表示式)的角度来解释括号中的元素 | y~x+I((z+w)^2) | 表示的是x+(z+w)²,而非x+z+w+z:w | |
function | 可以在表达式中运用的数学函数 | log(y)~x+z+w | ||
mpg ~ wt \ | cyl | 表示按条件(cyl)绘图; | 即按cyl的水平为【分组条件】分别绘制mpg和wt的关系图 |
研究设计表达式
表达式 | 作用 | 解释 |
---|---|---|
y~A | 单因素ANOVA | 1.小写字母,定量变量 2.大写字母,组别因子(若不转换为factor,则默认为定量协变量) 3.Subject,被试者独有的标志变量 4.Error(Subject/A),表示组内因子 |
y~x+A | 含单个协变量的单因素ANCOVA | |
y~A * B | 双因素ANOVA | 展开为 ~A+B+A:B |
y~x1+x2+A*B | 含两个协变量的双因素ANCOVA | |
y~B+A(B是区组因子) | 随机化区组 | |
y~A + Error(Subject/A) | 单因素组内ANOVA | |
y~B*W+Error(Subject/W) | 含单个组内因子(W)和单个组间因子(B)的重复测量ANOVA | 展开为 ~B+W+B:W |