zoukankan      html  css  js  c++  java
  • R in action读书笔记(2)-第五章:高级数据管理(下)

    5.4 控制流

     语句(statement)是一条单独的R语句或一组复合语句(包含在花括号{ } 中的一组R语

    句,使用分号分隔);

     条件(cond)是一条最终被解析为真(TRUE)或假(FALSE)的表达式;

     表达式(expr)是一条数值或字符串的求值语句;

    q    序列(seq)是一个数值或字符串序列。

    q  5.4.1重复和循环

    q  1.for结构  循环重复地执行一个语句,直到某个变量的值不再包含序列seq中为止

    q  语法:for(var in seq) statement

    q  2.while结构  循环重复地执行一个语句,知道条件不为真为止

    q  语法:while(cond) statement

    q  5.4.2条件执行

    q  1.if-else结构  控制结构if-else在某个给定条件为真时执行语句。也可以同时在条件为假时执行另外的语句。

    q  语法:if (cond) statement

    q        If(cond)statement1 else statement2

    q  2.ifelse结构 是if-else结构比较紧凑的向量化版本

    q  语法:ifelse(cond,statement1,statement2) #cond=TRUE 执行statement1;FALSE时执行statement2

    q  3.switch结构 根据一个表达式的值选择语句执行

    q  语法:switch(expr,…)

    q  5.5用户自编函数

    q  结构:myfunction<- function(arg1,arg2,…){

    q    statements

    q    return

    q  }

    q  注:一旦开始编写无论任何长度和复杂度的函数,优秀调试工具的重要性都会凸显出来。R中有许多实用的内建调试函数,也有许多用户贡献包提供了额外的功能。关于这个话题,一份优秀的参考资料是DuncanMurdoch整理的“Debugging in R”(http://www.stats.uwo.ca/faculty/murdoch/software/debuggingR)。

    q  5.6整合与重组 (aggregate & reshape)

    q  5.6.1转置

    使用函数t()即可对一个矩阵或数据框进行转置。对于后者,行名将成为变量(列)名。

    5.6.2整合数据

    在R中使用一个或多个by变量和一个预先定义好的函数来折叠(collapse)数据是比较容易的。

    调用格式为:aggregate(x,by,FUN)

    其中x是待折叠的数据对象,by是一个变量名组成的列表,这些变量将被去掉以形成新的观测,

    而FUN则是用来计算描述性统计量的标量函数,它将被用来计算新观测中的值。

    5.6.3reshape包

    reshape包是一套重构和整合数据集的绝妙的万能工具。

    1、  融合

    数据集的融合是将它重构为这样一种格式:每个测量变量独占一行,行中带有要唯一确定这个测量所需的标识符变量。例:

    Library(reshape)

    Md<-melt(mydata,id=(c(“id”,””time”))))

    2、  重铸

    cast()函数读取已融合的数据,并使用你提供的公式和一个(可选的)用于整合数据的函数将其重塑。调用格式为:newdata<-cast(md,formula,FUN)

    其中的md为已融合的数据,formula描述了想要的最后结果,而FUN是(可选的)数据整合函数。

  • 相关阅读:
    Android各版本系统源代码下载
    Android ListView从网络获取图片及文字显示
    Android 仿QQ主页面的实
    Android ListView初步
    SQLite数据库的使用
    Android ViewPager使用详解
    (转载)在Android中使用Handler和Thread线程执行后台操作
    Android常用的工具类收藏用
    IBM HACMP 系列 后期安装工作和管理任务一
    ORA02024: Database Link Not Found [ID 1058949.1]
  • 原文地址:https://www.cnblogs.com/jpld/p/4429309.html
Copyright © 2011-2022 走看看