R语言学习笔记之统计分析篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/WL2002200/article/details/50810128

数据生成

  • 通过已有变量运算得到新的变量:+ - * / ^or**(求幂)x%%y (求余) x%/%y(整数除法)
    e.g mydata$mean =( mydata$x1+mydata$x2)/2
    or mydata <- transform(mydata, sumx = x1+x2, meanx = (x1+x2)/2)

数据清洗

变量的重编码

  • 数值划分为类别
    ageCat[age > 75] <- "Elder"
    ageCat[age >=55 & age <= 75] <- "Middle age"
    ageCat[age < 55] <- "Young"

也可以用within()函数改写,与with()不同的是,它允许更改数据框中的数据。

  • 数值替换
    age[age == 999] <-NA

is.na()检测是否为缺失值,对应位置返回逻辑值。

  • 在分析中排除缺失值
 y <- sum(x,na.rm=TRUE)
newdata <- na.omit(old_data)  #删除不完整的观测值` 
  • 类型转换

    is.xxx() 表判断
    as.xxx()转换
    xxx可以为 numeric/ character/ vector/ matrix/ data.frame/ factor/ logical

  • 排序

attach(leadership)
newdata <- leadership[order(gender, -age),] #按性别,同性别年龄降序排列
detach(leadership)

数据集操作

  • 添加列
    total <- merge(dataA,dataB,by= "ID"),通过一个或多个共有变量连接
    total <-cbind(A,B) 不需要公共项

  • 添加行
    rbind()

  • 取子集

    • 选取
      newdata <- olddata[,c(6:10)]

      varNames <- c("A","B","C")
      newdata <- olddata[varNames]

    • 剔除
      varNames <- names(olddata) %in% c("A","B","C")
      newdata <- olddata[!varNames]
  • 选观测
    newdata <- leadership [which(gender=='M' &age > 30) ,]

    subset()

    newdata  <- subset(olddata, xxx> xx| xxxx<xxxxx, 
    select = c(name1, name2, name3)/ select = name1:name3)
  • 抽样
    sample()
    e.g sample_data <- total_data[sample(1:row_you_want, sample_size, replace=FALSE是否无放回),]

常用函数

统计函数

函数名 作用
mean(x) 均值
median(x) 中值
sd(x) 标准差
var(x) 方差
mad(x) 绝对中位差
quantile(x,p) 分位数
range(x) 求值域
sum(x)
diff(x,lag=n) 滞后差分,lag是滞后项
min(x) 最小值
max(x) 最大值
scale(x,center=TRUE,scale=TRUE 为数据对象x按列进行中心化,或标准化

概率函数

type[d(密度)p(分布)q(分位数)r(生成随机数)]+name[...]

name abbr. name abbr.
Beta分布 beta 二项分布 binom
柯西分布 cauchy (非中心)卡方分布 chisq
指数分布 exp F分布 f
Gamma分布 gamma 几何分布 geom
超几何分布 hyper 对数正态分布 lnorm
Logistic分布 logis 多项分布 multinom
负二项分布 nbinom 正态分布 norm
泊松分布 pois wilcoxon符号秩分布 signrank
t分布 t 均匀分布 unif
weibull分布 weibull wilcoxon秩和分布 wilcox
阅读更多
换一批

没有更多推荐了,返回首页