zoukankan      html  css  js  c++  java
  • R语言学习笔记(四)

    6. 数据转换

           本章主要讲述apply系列函数:apply、lapply、sapply、tapply、mapply,以及姊妹函数by、split。适用于批量处理数据,而不许循环。

    6.1 向量分组

    用因子(分组因子)来标识元素的不同组:

    > groups <—split(x, f)             //x<—c(40,29,39),f<—factor(c(“A”,”B”,”A”))

    返回的是一个向量列表,列表中每个向量包含属于同一组的元素

    > groups <—unstack(data.frame(x,f))         //返回的是由向量列表转换成的数据框

    6.2 将函数应用于每个列表的元素

    > lst <—lapply(lst, function)          //返回列表形式

    > vec <—sapply(lst, function)        //如果可能返回向量形式

    6.3 将函数应用于矩阵的每一行

    > results <—apply(mat, 1, function)            //mat是矩阵,1是指逐行

    返回结果是一个向量

    6.4 将函数应用于矩阵或数据框的每一列

    > results <—apply(mat, 2, function)            //mat是矩阵,2是指逐列

    > lst <—lapply(dfrm, function)                    //dfrm是数据框,逐列运算

    > vec <—sapply(dfrm, function)

    如果当数据框中元素是同质的话,也可以用apply。

    6.5 将函数应用于组数据

    > tapply(x,f, function)              //将函数应用于每组数据

    6.6 将函数应用于行组

    > by(dfrm,fact, function)        //因子fact识别dfrm中每行所属类别,函数function的参数应该是一个数据框,by把行放入一个临时数据框,然后调用function。

    6.7 将函数应用于平行向量或列表

    > mapply(gcd,c(1,2,3), c(9,6,3))           //分别求(1,9)(2,6)(3,3)的最大公约数

    gcd是求两个数的最大公约数,其参数是纯量,而非向量化的。

    7. 字符串和日期

    日期和时间的类:Date、POSIXct、POSIXlt、chron、lubridate、mondate、timeDate

    7.1 获取字符串长度

    > nchar(“Moe”)         //结果是3

    >length(“Moe”)        //结果是1,不是求的字符串长度

    7.2 连接字符串

    > paste(“Everybody”,“loves”, “stats.”)

    > paste(“Everybody”,“loves”, “stats.”, sep=”-”)  //连接的中间间隔为“-”

    > paste(vec,“loves”, “stats.”)         //vec中每个元素分别和后面字符串相连

    > paste(vec,“loves”, “stats.”, collapse=”,and ”)   //顶级分隔符

    7.3 提取子串

    > substr(“Statistics”,1, 4)         //提取从第1个元素开始到第4个结束的子串

    > cities<— c(“New York, NY”, “Los Angeles, CA”, “Peoria, IL”)

    >substr(cities, nchar(cities)-1, nchar(cities))      //结果是”NY””CA” “IL”

    7.4 根据分隔符分割字符串

    > strsplit(string,delimiter)      //delimiter是一个简单字符串或正则表达式

    7.5 替代字符串

    > sub(old,new, string)             //替代第一个子串

    > gsub(old,new, string)           //替代所有子串

    7.6 查看字符串中的特殊字符

    用cat输不出时,用print就好

    7.7 生成字符串的所有成对组合(笛卡尔积)

    > m <—outer(string1, string2, paste, sep=”-”)         //sep是连接符

    7.8 得到当前日期

    > Sys.Date()

    7.9 转换字符串为日期

    > as.Date(“2014-10-23”)

    >as.Date(“10/23/2014”, format=”%m/%d/%y”)       //不确定Date的格式时的方法

    7.10 转换日期为字符串

    > format(Sys.Date())

    >as.character(Sys.Date())                                   //按默认格式

    > format(Sys.Date(),format=” %m/%d/%Y”)      //规定输出字符串格式,注意”/”、”Y”

    7.11 转换年、月、日为日期

    > ISOdate(year,month, day)                  //POSIXct对象,该函数可以处理向量数据

    > as.Date(ISOdate(year,month, day))   //转换为Date对象

    7.12 得到儒略日期

    儒略日期是指从某个任意起始点以来的天数,R中的起始点是1970年1月1日

    >as.integer(as.Date(“2014-10-23”))

    >julian(as.Date(“2014-10-23”))            //方法2,同时输出起始点

    7.13 提取日期的一部分

    > p <— as.POSIXlt(as.Date(“2014-10-23”))         //日期、时间对象

    > p$mday                   //指定日期对应的该月中的天数(1~31)

    > p$sec                       //秒数(0~61)

    > p$min                      //分钟数(0~59)

    > p$hour                     //小时(0~23)

    > p$mon                     //月份(0~11)

    > p$year                     //年份(自1900起)

    > p$wday                    //该周的某一天(0~6,Sunday=0)

    > p$yday                     //该年的某一天(0~365)

    > p$isdst                     //夏时令标记

    7.14 创建日期序列

    > seq(from=s,to=e, by=1)               //s和e分别是起始、结束日期

    > seq(from=2,by=”month”, length.out=7)          //列出7个日期

  • 相关阅读:
    node.js 安装后怎么打开 node.js 命令框
    thinkPHP5 where多条件查询
    网站title中的图标
    第一次写博客
    Solution to copy paste not working in Remote Desktop
    The operation could not be completed. (Microsoft.Dynamics.BusinessConnectorNet)
    The package failed to load due to error 0xC0011008
    VS2013常用快捷键
    微软Dynamics AX的三层架构
    怎样在TFS(Team Foundation Server)中链接团队项目
  • 原文地址:https://www.cnblogs.com/triple-y/p/9392827.html
Copyright © 2011-2022 走看看