• R语言学习


    1.清屏
    Ctrl + L
    
    2.退出
    q()
    
    3.设置工作空间
    getwd()
    setwd('D:\Program Files\RStudio\workspace')
    
    4.显档当前工作目录下的文件列表
    list.files()
    choose.dir()
    dir("D:\Program Files\RStudio\workspace", full.names=T, all.files=T, recursive=T)
    
    5.安装包
    install.packages("gstat")
    remove.packages("gstat")  # 删除
    update.packages()  # 更 新 所 有 已 经 安 装 的 包
    availabe.packages()  # 可 用 的 更 新央
    download.packages(pkgs,...)  #  下 载 指 定 的 包
    packageStatus()  # 返回可更新信息
    
    6.加载包
    library(gstat)
    detach("package:gstat") # library 的 逆 向 操 作
    library() #查看所有可用的包
    search() #查看当前调入内存的包
    
    7.查找帮助
    ?gstat
    help('gstat')
    apropos('gstat')
    
    8.环境变量(options)
    options()
    options("digits")  # 默 认 打 印 字 符 长 度
    options(digits=3)  # 设置打印字符长度
    
    9.运行系统命令
    system("ls x*")
    files <- system("ls x*",intern=T)  # 保存输出结果为R对象,加入参数intern=T
    
    10.内存管理
    Rgui --min-vsize=10M --max-vsize=100M --min-nsize=500k --max-nsize=1M  # 启 动 时 候 管 理 内 存
    
    # 启动后修改最大内存与查询内存信息
    help(memory.size)
    memory.size(max = FALSE)
    memory.limit(size = NA)
    memory.limit()
    memory.profile()
    
    11.显示内存中的变量
    ls()
    ls.str()
    str(x)
    
    12.清除内存中的变量
    rm(list=ls())
    rm('a')
    
    13.测试运行时间
    # 将 函 数 包 含 在system.time() 内, 返回运行时间
    system.time(for(i in 1:100) mad(runif(1000)))
    
    15.原子类型
        R的对象类型包括 
        数 值 型 (numeric) , 
        复 数 型 (complex) ,
        逻 辑 型 (logical) ,
        字 符 型 (character) 
        原 味 型 (raw)
        NA
    
    16.向量
        向量必须保证它的所有元素是一 样的模式。向量对象的类型的包括: 实数、复数、逻辑、字符串。 它们是原子(atomic), 即元素类型一样。
    
    17.因子
        一个因子不仅包括分类变量本身还包括变量不同的可能水平(即使它们在数据中不出现)。因子函数factor用下面的选项创建一个因子 :
        factor(x, levels = sort(unique(x), na.last = TRUE),labels = levels, exclude = NA, ordered = is.ordered(x))
    
    18.列表(list)
        R的列表(list)是一个以对象的有序集合构成的对象 。 列表中包含的对象又称为它的分量(components)。每个分量的长度和类型可以不同。
        Lst <- list(name="Fred", wife="Mary", no.children=3, child.ages=c(4,7,9))
        获取分量
        Lst$name 和Lst[[1]] 返 回 结 果 都 是"Fred",
        Lst$wife 和Lst[[2]] 返 回 的 则 是"Mary",
        Lst$child.ages[1] 和Lst[[4]][1] 返 回 一 样 的 数 字4
    
        这里特别要注意一下Lst[[1]]和Lst[1]的差别 。[[...]]是用来选择单个元素的操作符,而[...]是一个更为一般的下标操作符。因此前者得到的是列表Lst中的第一个对象,并且含有分量名字的命名列表(named list)中的分量名字会被排除在 外的失。后者得到的则是列表Lst中仅仅由第一个元素构成的子列表。如果是命名列表,分量名字会传给子列表的。
    
    19.数据框(data.frame)
        数据框(data.frame)也是列表夬是一个属于“data.frame”类的列表。不过,对于可能属于数据框的列表对象有一些限制条件。
        分量必须是向量(数值、字符、逻辑),因子,数值矩阵,列表或者其他数据框;每列的行数必须相等。
        数据框常常会被看作是一个由不同模式和属性的列构成的矩阵。它能以矩阵形式出现,行列可以通过矩阵的索引习惯访问。
    
    20.矩阵
        矩阵(matrix)是一个双下标(2维)的数组央但是,它非常的重要,以至于需要单独讨论。
        包括许多只对矩阵操作的操作符和函数。
        命名与数组array()一样。
        矩阵的下标顺序是先第一列,然后第二列,等等。
        d<-matrix(c(1,2,3,4,5,6,7,8,9),nc=3)
    
    21.数组(array)及维度命名
        数组可以看作是带有多个下标类型相同的元素集合,如数值型夬是矩阵的推广。R有一些简单的工具创建和处理数组,特别是矩阵。
        向量只有在定义了dim属性后才能作为数组在R中使用。假定,z是一个含1500个元素的向量。那么dim(z)<-c(3,5,100),对dim属性的赋值使得z向量成一个3维的3*5*100的数组。
    
        #命名的顺序总是行,列,第三维,...,每一维还可以有一个总名字,也可以没有
    Rabbits <-array(
        c( 0, 0, 6, 5,
        3, 0, 3, 6,
        6, 2, 0, 4,
        5, 6, 1, 0,
        2, 5, 0, 0),
        dim = c(2, 2, 5),
        dimnames = list(
            Delay = c("None", "1.5h"),
            Response = c("Cured", "Died"),
            Penicillin.Level = c("1/8", "1/4", "1/2", "1", "4")))
    
    22.字符串及相关操作
        针对字符串的函数有 print, paste, cat, nchar, strsplit, regexpr, grep, gsub, sub等。
        > seq="GGGGCGAAACCGAGACTCTCAAATGACTTTTCTGA"
        > seq=strsplit(seq,"")
        chartr(old, new, x):字符串替换
        tolower(x),toupper(x):大小写变换
        paste, cat:合并字符串
        nchar:有多少字母
        substr(x, start, stop):取子串
        strsplit:按分隔符切分字符串
        gsub, sub:子串替换
        regexpr, grep:查找子串
    
    23.分数
        MASS fraction函数可以将小数转换为近似的分数
        > fractions(0.291667)
    
    24.日期和时间
        当前日期和时间夬返回Date和DateTimeClasses对象。
            > date()
            > Sys.time()
            > Sys.Date()
            > s='08:10:00'
            > z=strptime(s,'%H:%M:%S')
            > class(z)
    
        字符串转换为日期时间的函数有format和as.character
        format将Date POSIXlt POSIXct转换为指定格式的字符串。  例如 > w=format.POSIXlt(z,format="%Y-%m-%d")
        as.character转换为字符串。  例如 > w=as.character(z)
    
        strptime将字符串转换为“POSIXlt”,例如 > w=strptime("09:10:00",'%H:%M:%S')
        strftime是format.POSIXlt的一个wrapper
    
        # 将 DateTimecleses 转 换 为 Date。 例如 > as.Date(w)
    
        #时间差异
        as.double(difftime(w,z,units="sec"))
    
    
    16.字符串表达式与求值
    # 返 回 表 达 式 列 表(list), 但 是 不 求 值
    parse(text="0==1")
    expression(0 == 1)
    # 求 字 符 串 代 表 的 表 达 式 的 值
    eval(parse(text="0==1"))
    # deparse() 返回函数代码字符串. substitute() 将变量替换为其值.
    
    
    
    17.读取外部数据
    data(meuse)  #rda
    read.table(file=file.choose(), header=T) #text
    read.csv('D:/R/test2.csv', header=T, row.names=1) #csv
    data<-read.table(
        file="clipboard",sep="	",header=F,
        colClasses = "numeric",na.strings = "-")  #从剪切板取数据
    data<-t(matrix(scan("fileName",sep=','), 5, 364)) # 读取大数据,读 入364行,每行有5个数
    
    
    18.给变量赋值
    data.entry(X)将打开一个图形编辑器并且可以通过点击适当的单元格修改数值
    
    height<-c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91)
    seq():顺序产生数,默认by为1
    letters():顺序产生字母,默认by为1
    
    19.查看对象类型
    mode(x)       # 显示数据类型
    typeof(x)
    length(x)
    
    22.获取和改变对象属性
    attributes(y)
    str(y)
    table(x)
    dim(y)            #查看或改变对象的维度,这里将向量变为数组。
    dimnames(y)
    dimnames(y)$x
    class(y)                 # 确定y的class
    
    attr(z, "dim") <- c(10,10) # 允许R把z当作一个10×10 的矩阵。
    
    20.类型转换
    as(x,"character")
    as.character(x)
    as.numeric(s)
    
    rbind():将向量按行结合为矩阵,cbind()则相反。
    round():起到四舍五入的作用,默认转化为整数。
    mean():平均值。
    sum():求和。
    min():最小值
    max():最大值
    prod():将数据集中数连乘。
    var():方差。
    sd():标准差。
    which():得到的是向量的下标
    rev():
    sort():
    t():使矩阵转置
    矩阵相乘是a%*%b,
    a*b是相对应位置上的数相乘。
    diag():对矩阵求对角向量;对向量求对角矩阵;参数为常数时求单位向量矩阵。
    solve(a):求矩阵的逆矩阵; solve(a,b):求ax=b方程组的解。
    
    rnorm():生成正态分布数。
    rpois():泊松分布
    rexp():指数分布
    rgamma():Gamma分布
    runif():均匀分布
    rbinom():二项分布
    rgeom():几何分布
    
    ------------------------------------------------------
    > library(sp)
    > library(maptools)
    > library(raster)
    
    
    > maxd3 = readAsciiGrid("max.d3.txt")
    > rasterlayer.maxd3 = raster(maxd3)
    > maxd1 = readAsciiGrid("max.d1.txt")
    > rasterlayer.maxd1 = raster(maxd1)
    > rasterlayer.max.d3.d1 = rasterlayer.maxd3 - rasterlayer.maxd1
    > rasterlayer.maxRange = rasterlayer.maxd1>0
    > maxRange = rasterToPolygons(rasterlayer.maxRange, dissolve=TRUE)
    
    > plot(maxRange)
    > cols = grey.colors(20, 0.1, 0.9, 2.2)
    > image(maxd3, col=cols, useRaster=TRUE)
  • 相关阅读:
    [LeetCode] 909. Snakes and Ladders 蛇梯棋
    [LeetCode] 857. Minimum Cost to Hire K Workers 雇佣K名工人的最低成本
    [LeetCode] 908. Smallest Range I 最小区间
    [LeetCode] 862. Shortest Subarray with Sum at Least K 和至少为K的最短子数组
    [LeetCode] 907. Sum of Subarray Minimums 子数组最小值之和
    [LeetCode] 864. Shortest Path to Get All Keys 获得所有钥匙的最短路径
    [LeetCode] 906. Super Palindromes 超级回文数
    [LeetCode] 871. Minimum Number of Refueling Stops 最少的加油站个数
    [LeetCode] 905. Sort Array By Parity 按奇偶排序数组
    [LeetCode] 1028. Recover a Tree From Preorder Traversal 从先序遍历还原二叉树
  • 原文地址:https://www.cnblogs.com/gispathfinder/p/5770069.html
Copyright © 2020-2023  润新知