R语言实战

2020-09-14  本文已影响0人  豆沙了

https://github.com/kabacoff/RiA2

第一部分 入门
第1章 R语言介绍

load(".RData")
source("filename")   # 执行一个脚本
.libPaths()   # 显示库所在位置
library()   # 显示库中有哪些包
search()   # 哪些包已加载
help(package = "vcd")   # 某个包的简短描述

第2章 创建数据集

data.frame()   # 创建数据框
patientdata[c("diabetes","status")]   # 选取数据框中的列
# 函数with
with(mtcars,{
  print(summary(mpg))
  plot(mpg,disp)
  plot(mpg,wt)
})
特殊赋值符 <<-
patientdata <- data.frame(patientID, age, diabetes, status, row.names=age)
sex <- factor(sex, levels = c(1,2), labels = c("male","female"))
str()   # 显示对象结构
summary()   # 显示对象的统计概要
class()   # 显示对象类型
# 列表
mylist <- list(title=g, ages=h, j, k)
mylist[[2]]
mylist[["ages"]]
mylist$ages

第3章 图形初阶

library(RColorBrewer)
# 复制一份当前的图形参数设置
opar <- par(no.readonly=TRUE)
par(pin=c(2, 3))
par(opar)
par(ask=TRUE)   # 按<Return>键来看下一个图
axis(2, at=x, labels=x, col.axis="red", las=2)   # 自定义坐标轴
# 文本标注
text(wt, mpg,
     row.names(mtcars),
     cex=0.6, pos=4, col="red")
text(3,3,"Example of default text")
# 图形组合
par(mfrow=c(2,2))
layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE))

第4章 基本数据管理

mydata <- transform(mydata,
                    sumx = x1 + x2,
                    meanx = (x1 + x2)/2)   # 增加列
names(leadership)[2] <- "testDate"   # 列名修改
leadership[age == 99, "age"] <- NA
leadership$age[leadership$age == 99] <- NA
newdata <- na.omit(leadership)
# 排序
newdata <- leadership[order(leadership$age),]
newdata <- leadership[order(gender, age),]
newdata <- leadership[order(gender, -age),]

cbind()   # 数据框横向合并
rbind()   # 纵向合并
# 剔除变量
myvars <- names(leadership) %in% c("q3", "q4") 
leadership[!myvars]
newdata <- leadership[c(-8,-9)]   # 已知变量位置
# subset选择
newdata <- subset(leadership, age >= 35 | age < 24,
                  select=c(q1, q2, q3, q4))
newdata <- subset(leadership, gender=="M" & age > 25,
                  select=gender:q4)

第5章 高级数据管理

set.seed(1234)
runif(5)
x <- pretty(c(-3,3),30)   # 连续分割为30个区间(31个数)
apply(mydata, 1, mean)   # 计算每行均值
# 分列
name <- strsplit((roster$Student), " ")   # 返回列表
Lastname <- sapply(name, "[", 2)
Firstname <- sapply(name, "[", 1)
# 整合数据
aggdata <-aggregate(mtcars, by=list(cyl,gear), 
                    FUN=mean, na.rm=TRUE)   #   cyl,gear归类,其他列求平均值 
# reshape2 包
melt, dcast

scale(mydata)*SD+M   # 任意均值和标准差的标准化
# 概率函数
d = 密度函数(density)
p = 分布函数(distribution function)
q = 分位数函数(quantile function)
r = 生成随机数(随机偏差)

nchar()   # 字符数量
substr(x,2,3) <- "aa"   # 替换
grep, sub   # 搜素某个文本字符串或正则表达式
seq(1,10,2)
for (i in 1:10) print("hello")
if (cond) stat1 else stat2

第二部分 基本方法
第6章 基本图形

paste(lbls, pct)   # 合并两个向量
hist(mtcars$mpg, breaks=12)   # 指定组数

# 轴须图
# 可比较的核密度图 P121 代码清单6-8
# 箱线图
boxplot.stats()
# 小提琴图
# 点图

第7章 基本统计分析

sapply(mtcars[myvars],fivenum)   # 多列
fivenum()   # 返回最小值 下四分位数 中位数 上四分位数 最大值
var()   # 样本方差
多种R包计算描述性统计量
# 一维
table()   # 默认忽略NA
prop.table(mytable) 
prop.table()*100
# 二维
table(A,B)
xtabs(~A+B,data=)
addmargins()   # 边际和
# 独立性检验
chisq.test()   # 卡方独立性检验
fisher.test()   # Fisher精确检验
mantelhaen.test()   # Cochran-Mantel—Haenszel检验
# 相关
cor()
cov()   # 协方差
pcor()   # 偏相关
corr.test()   # psych包 显著性检验
pcor.test()


上一篇下一篇

猜你喜欢

热点阅读