R--基础知识总结

2023-11-09

R程序包的安装和加载

install.packageS(''TSA'')
library(''TSA'')

R向量 (vector)

数值向量

1.赋值

  • x<-c(1,2,3,4)
  • assign('' x'',c(1,2,3,4))
  • x=c(1,2,3,4)
  • x<-2*1:15                      % x=(2,4,...,30) 等差运算优先于乘法运算
  • seq(from=value1,to=value2,by=value3)  
  • seq(length=value2,from=value1,by=value3)  
  • rep(x,times=3)
  • rep(x,each=2)
  • rep(x,1:3)

2.运算

  • %/% 表示商的整数部分,%%表示余数
  • 复数开方时应输入sqrt(-2+0i)

3.函数

  • which.min(x)    %找位置
  • cumsum(x)      %累积求和
  • rev(x)               %求向量的逆序
  • sd(x)                %求向量的标准差
  • order(x,decreasing=TRUE)              %降序给出其排序位置
  • union(X,Y)                                        %并集
  • intersect(X,Y)                                    %交集
  • unique(X)                                           %除去V中重复元素的集合
  • setdiff(X,Y)                                         %表示数集X和Y的差集
  • c%in%Y                                              %检验c是否为为集合中的元素
  • choose(n,k)                                         %从含有n个元素的集合中选取含有k个元素的子集的数目
  • setequalX,Y)                                       %检验集合X和Y是否相等 

逻辑向量

  • all()                                                             %判断一个逻辑向量是否全部为真
  • any()                                                           %判断一个逻辑向量是否有真的函数

缺失数据

  • is.na()                                                                %检验缺失数据
  • z[is.na(z)]<-0                                                     %将缺失数据改为0 
  • is.finite()                                                             %检测是否有限

元素访问与读取

  • X[V]表示取出所有V为真值的元素
  • Z[is.na(Z)]<-0                                                           %将向量中缺失数据赋值为0
  • V[-c()]                                                                       %表示扣除相应元素
  • ages<-c()
  • names()

y=\begin{cases} & \text{1-x } ,x<0\\ & \text{1+x} ,x\geqslant 0 \end{cases}

y<-numeric(lenth(x))
y[x<0]<-1-x[x<0];y[x>=0]<-1+x[x>=0]

R数组与矩阵 (array  matrix)

数组与矩阵的正成

定义数组

维数向量(dim属性)   默认按列排放

构造多维数组

array(data=NA,dim=length(data),dimnames=NULL)

构造矩阵

matrix(data=NA,nrow=1,ncol=1,byrow=F,dimnames=NULL)    byrow=T数据按行放置

访问

a[, ,]或a[ ]                                              % 都表示整个数组

运算

数组运算

 维数不一样的数组也可以进行四则运算,一般是将短向量循环使用

矩阵运算

  • t(A)                                                        %转置
  • det()                                                    %求方阵行列式
  • X%*%Y                                                 %X和Y的内积,先相乘后相加
  • crossprod(X,Y)                                      %X和Y的内积
  • X%°%                                                    %X和Y的外积
  • ourter(X,Y)                                             %求X和Y的外积
  • A%*%B                                                  %通常意义下矩阵的乘积
  • solve(A,b)                                              %解线性方程组AX=b
  • solve(A)                                                 %求矩阵的逆

函数  

  • cbind()                                                          %把自变量横向按列拼成一个大矩阵
  • as.vector(A)                                                  %将矩阵转化为向量
  • aperm(A,C(2,3,1))                                         %将A的第二维移到了第一维
  • apply(A,1,sum)                                              %按行,求和

R的对象与属性

内在属性

mode(类型)length(长度)

类型共有四种:数值型(numeric)、字符型(character)、逻辑型(logical)、负数型(complex)

R列表与数据框

列表

  • Lst[[  ]]                                                                % (每次只能引用一个元素)
  • Lst $ name                                                         % 引用格式:列表名+元素名
  • Lst $ income                                                      % 增加一个元素
  • Lst $ income<-NULL                                          % 删除一个元素

数据框

  • data.frame()                                                                % 各自变量变成数据框的成分/生成
  • as.data.frame()                                                           % 强制转成数据框
  • df[ ]                                                                              % 数据框的引用
  • names()                                                                       % 只能用于数据框的变量名
  • roenames()                                                                  % 属性定义行名
  • attach(df)                                                                      % 数据框数据的调用(列表也可以)
  • detach()                                                                        %取消连接
  • edit()                                                                              %对数据进行修改或编辑

R 控制流及函数编写

分支语句

1.if/else语句

2.switch语句

循环语句

1.for循环语句

# 构造一个4阶的Hilbert矩阵
n<-4;x<-array(0,dim=c(n,n))
for (i in 1:n){
    for(j in 1:n){
        x[i,j]<-1/(i+j+1)
    }
}
x

2.while循环语句

# 计算1000以内的Fibonacci数
f<-1;f[2]<-1;i<-1
while (f[i]+f[i+1]<1000){
    f[i+2]<-f[i]+f[i+1]
    i<-i+1
}
f

3.repeat循环语句

f<-1;f[2]<-1;i<-1
repeat{
    f[i+2]<-f[i]+f[i+1]
    i<-i+1
    if ((f[i]+f[i+1]>=1000))  break
}

函数编写

1.二分法

例:编写一个用二分法求解非线性方程根的函数,并求方程

x^{3}-x-1=0

在区间[1,2]上的根,精度要求\varepsilon =10^{-6}

解:二分法计算过程如下:取中点x=\tfrac{a+b}{2},若f(a)与f(b)异号,则取b=x;否则a=x.

fzero<-function(f,a,b,eps=1e-5){
    if (f(a)*f(b)>0)
        list(fail="finding root is fail!")
    else{
        repeat{
            if (abs(b-a)<eps) break
            x<-(a+b)/2
            if (f(a)*f(x)<0) b<-x else a<-x
        }
        list(root=(a+b)/2,fun=f(x))
    }
}
f<-function(x) x^3-x-1
fzero(f,1,2)
# 求一元方程根的函数uniroot()
f<-function(x) x^3-x-1
uniroot(f,c(1,2))

2.Newton法解非线性方程

例:编写一个用Newton法求解非线性方程根的函数,并求方程

x^{3}-x-1=0

精度要求\varepsilon =10^{-6}

newton<-function(f,eplison,x0,iter_max){
    x=x0
    iter=0
    dx=D(f,'x')
    while (iter<=iter_max){
        ans=x-eval(f)/eval(dx)
        if (abs(x-ans)<eplison){
        break
        }
        else{
            x=ans
    }
    iter=iter+1
    }
    list(x,iter)
}
newton(expression(x^3-x-1),0.000001,1.5,100000) # 取初值=1.5

3.Newton法解非线性方程组

例:编写用Newton法求解非线性方程组解的程序,并求方程

\begin{cases} & \text{} x_{1}^{2}+x_{2}^{2}-5= 0\\ & \text{} (x_{1}+1)x_{2}-(3x_{1}+1)= 0 \end{cases}

取初始值x^{(0)}=(0,1)^{T},精度要求\varepsilon =10^{-5}

Newtons<-function(fun,x,ep=1e-5,it_max=100){
    index<-0;k<-1
    while (k<=it_max){
        x1<-x;obj<-fun(x);
        x<-x-solve(obj$J,obj$f);
        norm<-sqrt((x-x1) %*% (x-x1))
        if (norm<ep){
        index<-1;break
        }
        k<-k+1
    }
    obj<-fun(x);
    list(root=x,it=k,index=index,FunVal=obj$f)
}

funs<-function(x){
    f<-c(x[1]^2+x[2]^2-5,(x[1]+1)*x[2]-(3*x[1]+1))
    J<-matrix(c(2*x[1],2*x[2],x[2]-3,x[1]+1),nrow=2,byrow=T)
    list(f=f,J=J)
}
Newtons(funs,c(0,1))

输出结果为:

$root
[1] 1 2

$it
[1] 6

$index
[1] 1

$FunVal
[1] 1.598721e-14 6.217249e-15
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R--基础知识总结 的相关文章

  • 对图片进行膨胀与腐蚀

    操作前的图片 操作后 代码实现 import cv2 import numpy as np from PIL import Image import os import matplotlib pyplot as plt 生成文件夹 def
  • Python中模块、库、包的概念

    文章目录 一 模块 Moudule 1 模块的概念 2 模块的导入 3 模块的引用于 name 属性 二 库 Library 1 库的概念 2 库的分类 3 第三方库的安装 三 包 Package 1 包的概念 2 区别 一 模块 Moud
  • 【井字棋】

    文章目录 前言 一 内容封装 二 基本流程 一 游戏菜单 二 数组初始化 三 棋盘打印 四 玩家落子 五 电脑落子 六 判断输赢 三 运行实例 四 完整代码 一 game h 二 game c 三 test c 总结 点击跳转 n子棋 前言
  • 嵌入式行业真的没有前途吗?

    点击上方 大鱼机器人 选择 置顶 星标公众号 福利干货 第一时间送达 嵌入式行业前途 是永恒的话题 因为嵌入式的高门槛和软件工程师的 快速 入行 烦扰了很多徘徊在嵌入式的新人 而近期 知乎这一话题也引发了大面积的讨论 21ic家这里引用一下
  • oracle:IF语句 Loop循环 Cursor的用法(二)

    游标FOR循环 在大多数时候我们在设计pl sql程序的时候都遵循下面的步骤 打开游标 gt 开始循环 gt 从游标中取值 gt 检查那一行被返回 gt 处理 gt 关闭循环 gt 关闭游标 要在程序中使用游标 必须首先声明游标Cursor
  • 聊城交通技工学校计算机,聊城交通技工学校

    聊城交通技工学校招生专业类型 1 就业型 以就业为目的高薪或校企合作定向培养的专业 适合成绩较差 头脑灵活 善于动手的初中毕业生 分精品专业和普通专业 精品型 专业前瞻 薪酬高 签订就业保障协议 100 安置工作 普通型 传统专业 推荐工作

随机推荐

  • Android源码分析 - Service启动流程

    开篇 本篇以android 11 0 0 r25作为基础解析 在之前的文章中 我们已经分析过了四大组件中Activity和ContentProvider的启动流程 这次我们就来讲讲四大组件之一的Service是如何启动和绑定的 流程图 在查
  • vue 数据监听失败原因和解决方式

    1 原因 地址没有改变 vue就监测不到数据变化 这个时候 双向绑定就失效了 官方也有相关解释 对数组 或对象添加新的属性 删除属性或者修改数组长度是无法被监听的 2 解决办法 对象 this set obj name 值 对对象进行操作时
  • pycharm中怎样打开命令行来调试python程序

    在程序运行时总需要命令行或终端来调试程序 以下是pycharm打开命令行的方法 点击左下角的框框 出现terminal 即命令行 加号是打开另一个命令行 叉号是关闭命令行 GOOD LUCK
  • spring_boot_整合mybatis遇到的问题-如何解决

    BindingException Invalid bound statement not found 如何解决 出现这个错误时 按以下步骤检查一般就会解决问题 1 检查xml文件所在package名称是否和Mapper interface所
  • svn 查看,删除用户名,密码

    1 查看svn 的用户名 密码 找到用户名 密码文件 都是明文的 你可以看到 例 linux hjj hjj ubuntu subversion auth svn simple ls 9aad7e9f713353a655cf43659261
  • 一文搞清原码,反码,补码及其应用

    三码 之间的转换 注意 以下的分析均以 1字节 进行 正数 负数 原码 数据的二进制形式 数据的二进制形式 反码 等于原码 原码的符号位不变 其他位取反 补码 等于原码 负数的反码 1 注意 无符号数 正数 它们的 原码 反码 补码 负数
  • 微信公众号--根据用户opneId获取用户信息

    一 登录微信公众号的测试环境 找到 网页授权获取用户基本信息 点击修改 添加上自己的回调地址域名 测试时可以写IP 端口号 正式环境只支持域名不要写http 或https 二 步骤 1 用户同意授权 获取code 参考链接 https op
  • # 数字、字符类型校验码识别

    数字 字符类型校验码识别 import ddddocr ocr ddddocr DdddOcr show ad False with open r 10 2 21 99 战略规划部共享盘 影刀数据存储 26 海王星辰 验证码图片 海王验证码
  • 推荐系统详解

    1 基于内容的推荐系统 1 基于内容的推荐算法概述 基于内容的推荐算法 Content based Recommendations CB 也是一种工业界应用比较广的一种推荐算法 由于协同过滤推荐算法中仅仅基于用户对于商品的评分进行推荐 所以
  • 【已解决】Android Studio Cannot resolve symbol '@dimen/activity_vertical_margin'

    Android Studio中dimens xml是用来存储部件尺寸大小的配置文件 我们可以将配置存储在dimens xml中 就可以使多个部件使用同样的值而只需更改一次 dimens xml路径为app gt src gt main gt
  • springboot整合rabbitmq

    目录 一 rabbitmq的相关概念 概念说明 二 相关步骤 整合springbbot 三 具体实现和对应的原理 1 配置rabbitmq的文件 2 配置configuration文件 配置连接 3 创建exchange 4 创建队列 5
  • 触发器实现模5加法计数器

    触发器实现模5加法计数器 个人的小实验 写个文章记录一下 注 multism中没有找到T 触发器 用JK触发器两端接1来替代 JK触发器功能表如下 因为 2 2 lt 5 lt 2
  • solidworks如何调整视图方向

    https jingyan baidu com article 14bd256e9185a5bb6d2612bd html
  • 应届程序员一年能挣多少钱?字节跳动员工:存款40万,感觉良好

    程序员是公认的高薪 不过很多人都说刚毕业的程序员收入并不会太高 有一些人可能收入还不过万的 只有工作个三五年经验跟技术充足了 那收入才是非常可观的 所以对于应届生来说 就算是程序员收入也一般 不过这可能只是指小公司的程序员 如果刚毕业就入职
  • 第三章 索引

    文章目录 一 索引器 1 表的列索引 2 序列的行索引 WARNING 关于索引类型的说明 END 3 loc索引器 练一练 END WARNING 不要使用链式赋值 END 4 iloc索引器 5 query方法 NOTE query中引
  • python之出现unresolved reference解决方法

    在目录上面右键点击选择Mark Directory As Sources root 将你的目录添加sources root 就可以解决了
  • Docker镜像的创建(配置生成docker镜像和dockerfile构建Tomcat)

    一 配置生成docker镜像 1 配置基于运行的容器生成镜像 并部署Apache服务 2 通过已有镜像生成新的镜像 https download openvz org template precreated centos 7 x86 64
  • shell运行python

    为了能在shell页面运行python程序 我们将复杂的python程序可以封装到shell里面 第一种 直接调用PY文件 这里必须保证py文件在前面这个路径下面方可 bin bash appcom anaconda bin python
  • mbp适合程序员_程序员入手mbp一月感受

    网上很多人推荐程序员使用macbookpro 说是最适合程序员的电脑 刚好新公司需要使用mac 趁着暑假教育优惠 入手了2020 13寸 2 0Ghz的mbp 一个月使用感受大致如下 1 macos和服务器上的linux系统环境差异比较大
  • R--基础知识总结

    R程序包的安装和加载 install packageS TSA library TSA R向量 vector 数值向量 1 赋值 x lt c 1 2 3 4 assign x c 1 2 3 4 x c 1 2 3 4 x lt 2 1