美文网首页
复杂数据统计方法——基于R的应用 R软件练习-part3

复杂数据统计方法——基于R的应用 R软件练习-part3

作者: 静绚 | 来源:发表于2018-11-30 18:55 被阅读9次

    本书作者: 吴喜之


    • 操作系统:win10

    • R版本:R-3.3.3

    实践6 —— 简单图形

    x <- rnorm(200) #获取200个随机正态数
    hist(x, col = "light blue") #绘制直方图
    rug(x) #在直方图下方添加实际数值所在位置
    stem(x) #绘制茎叶图
    x <- rnorm(500)
    y <- x + rnorm(500) #构造线性关系
    plot(y~x) #绘制散点图
    a = lm(y~x)
    abline(a, col="red") #基于plot添加拟合线
    plot(y~x)
    abline(lm(y~x), col="red") #一步完成,绘制散点图,同时添加拟合线,注意同样基于plot
    print ("Hello World!") #直接打印语句
    paste("x的最小值= ", min(x)) #打印语句
    demo(graphics) #演示R中自带的图形
    

    实践7 —— 复数运算和求函数极值

    (2+4i)^-3.5 + (4.5+2i)*(-1.7-2.3i)/((2.6-7i)*(-4+5.1i)) #进行复数运算
    (z <- complex(real=rnorm(10), imaginary=rnorm(10))) #构造一个10维复向量,实部和虚部均为10个标准状态样本点
    complex(real=rnorm(10), imaginary=rnorm(5)) #如果实部和虚部的样本点个数不同,看看与前一命令有何不同。
    Re(z) #列出z中所有复向量的实部
    Im(z) #列出z中所有复向量的虚部
    Mod(z) #计算各个复向量的模。复数的模为实部与虚部平方和的正平方根。
    Arg(z) #计算各个复向量的辐角。在复平面上,复数所对应的向量与x轴正反向的夹角称为复数的辐角。可以注意一下,辐角的符号与虚部的符号一致。
    choose(10, 4) #组合数。C(n, m),从n个元素中不重复地抽取m个元素的组合个数。 C(n, m)=n!/(m!(n-m)!)
    combn(5, 2) #列出所有组合
    factorial(6) #计算6的阶乘,即6!
    f = function(x) x^3-2*x-1 #构建方程式
    uniroot(f, c(0, 2)) #迭代求根。结果中$root 为求解出来的方程近似解;$f.root 为在此近似解下的方程值;$iter 为求解过程中,方程的迭代次数;$estim.prec 为近似解与较精确解的误差估计,即近似解与较精确解之间误差的值不超过这个数值。
    optimize(f, c(0, 2)) # 计算给定区间内的极值
    optimize(f, c(1, 3)) # 注意与前一个命令结果之间的差别。我还不是特别明白里面的含义。
    
    #在R语言中,我们可以借助uniroot()函数来求解方程的某个单根。对于一元一次方程,需要调用uniroot()一次;由于二次方程一般有2个根,所以对于一元二次方程,需要调用uniroot()两次。
    #题目:求一元二次方程ax^2+bx+c=0,设a=1,b=5,c=6,求x
    f <- function(x, a, b, c) a*x^2+b*x+c
    a <- 1; b <- 5; c <- 6
    result1 <- uniroot(f, c(0, -2), a=a, b=b, c=c, tol=0.0001)
    result2 <- uniroot(f, c(-3, -4), a=a, b=b, c=c, tol=0.0001)
    result1$root
    result2$root
    
    #也可以用作图的方式求解
    x <- seq(-5, 1, by=0.01)
    y <- f(x, a, b, c)
    df <- data.frame(x, y)
    library(ggplot2)
    g <- ggplot(df, aes(x, y))
    g <- g + geom_line(col="red")
    g <- g + geom_hline(yintercept=0) + geom_vline(xintercept=0)
    g <- g + ggtitle(paste("y=", "x^2+", b, "x+", c))
    g #从图中我们可以得到该方程的两个根
    

    实践6主要介绍R的作图功能,强大的绘图功能正是许多人喜欢R的原因之一;实践7开始涉及基础运算,需要结合相应的数学知识慢慢理解。

    相关文章

      网友评论

          本文标题:复杂数据统计方法——基于R的应用 R软件练习-part3

          本文链接:https://www.haomeiwen.com/subject/upfkcqtx.html