搜索
查看: 815|回复: 2

[R] 0904 R数据科学啃书

[复制链接]

22

主题

38

帖子

183

积分

注册会员

Rank: 2

积分
183
发表于 2018-9-5 00:01:36 | 显示全部楼层 |阅读模式
本帖最后由 杰根妹妹 于 2018-9-5 00:04 编辑

  • 函数
    • 函数组件
      • 名称、参数、函数体、返回值
      • function_name <- function(arg_1, arg_2, ...) { Function body }
    • 内置函数
      • seq(), mean(),sum(),paste()
    • 自定义函数
      • new.function <- function(a) {          for (i in 1:a) {       b <- i^2         print(b)      }  }
        • new.function <- function(a,b,c) {result <-a*b+c print(result)}

    • 调用函数:
      • 使用参数值调用函数(按位置(new.function(5,3,11))和名称(new.function(a = 11, b = 5, c = 3)))
      • 使用默认参数调用函数
      • 对函数参数进行延迟评估

  • 字符串
    • 单引号或双引号对中写入的任何值都被视为字符串
    • 字符串应用规则
    • 字符串操作
      • 连接字符串
        • paste (..., sep = " ", collapse = NULL)
        • ...表示要组合的任意数量的自变量。
        • sep表示参数之间的任何分隔符。它是可选的。
        • collapse用于消除两个字符串之间的空格。 但不是一个字符串的两个字内的空间。
      • 格式化数字和字符串为特定样式
        • format(x, digits, nsmall, scientific, width, justify = c("left", "right", "centre", "none"))
        • x是向量输入。
        • digits是显示的总位数。
        • nsmall是小数点右边的最小位数。
        • 科学设置为TRUE以显示科学记数法。
        • width指示通过在开始处填充空白来显示的最小宽度。
        • justify是字符串向左,右或中心的显示。
      • 计算字符数
        • nchar(x)
        • x是向量输入
      • 改变字符串大小写
        • toupper(x) tolower(x)
        • x是向量输入
      • 提取字符串
        • substring(x,first,last)
        • x是字符向量输入。
        • 首先是要提取的第一个字符的位置。
        • last是要提取的最后一个字符的位置。


  • 向量
    • 向量是最基本的R语言数据对象,有六种类型的原子向量。 它们是逻辑,整数,双精度,复杂,字符和原始。
    • 单元素向量
    • 多元素向量
      • 对数值数据使用冒号运算符 v <- 5:13
      • 使用sequence (Seq.)序列运算符
      • sequence() 序列运算符 print(seq(5, 9, by = 0.4))
      • c()函数,如果其中一个元素是字符,则非字符值被强制转换为字符类型。
    • 访问向量元素
      • 使用索引访问向量的元素。 []括号用于建立索引。 索引从位置1开始。在索引中给出负值会丢弃来自result.TRUE,FALSE或0和1的元素,也可用于索引。
      • t <- c("Sun","Mon","Tue")
      • 产生Mon的几种做法
        • u <- t[c(2)]
        • v <- t[c(FALSE,TRUE,FALSE)]
        • x <- t[c(-1,-3)]
        • y <- t[c(0,1,0)] ??

    • 向量操作
      • 运算
        • 可添加,减去,相乘或相除两个相同长度的向量,将结果作为向量输出。
      • 元素回收
        • 对不等长的两个向量应用算术运算,则较短向量的元素被循环以完成操作。
      • 元素排序
        • sort()
        • v <- c(3,8,4,5,0,11, -9, 304), sort.result <- sort(v, decreasing = TRUE)


  • 列表
    • 列表是R语言对象,它包含不同类型的元素,如数字,字符串,向量和其中的另一个列表。 列表还可以包含矩阵或函数作为其元素。 列表是使用list()函数创建的。
    • 和向量的区别:向量中存储的是同一种元素,list是向量的一般形式,其元素类型并不一定都相同,而且其元素往往为向量或元素本身,列表为返回结果提供了一种便捷的方式
    • list_data <- list("Red", "Green", c(21,32,11), TRUE, 51.23, 119.1) print(list_data)
    • 命名列表元素
      • names(list_data) <- c("1st Quarter", "A_Matrix", "A Inner list")
    • 访问列表元素
      • print(list_data$A_Matrix) # $符号
    • 控制列表元素
      • 在末尾添加,删除元素,可更新所有列表元素
      • list_data[4] <- "New element" and list_data[4] <- NULL
    • 合并列表
      • merged.list <- c(list1,list2)
    • 列表转为向量
      • unlist()函数,列表可以转换为向量,使得向量的元素可以用于进一步的操作
      • v1 <- unlist(list1)

  • 矩阵
    • 矩阵是其中元素以二维矩形布局布置的R对象,包含相同原子类型的元素,使用包含数字元素的矩阵用于数学计算。
    • matrix(data, nrow, ncol, byrow, dimnames)
      • 数据是成为矩阵的数据元素的输入向量。
      • nrow是要创建的行数。
      • ncol是要创建的列数。
      • byrow是一个逻辑线索。 如果为TRUE,则输入向量元素按行排列。
      • dimname是分配给行和列的名称。
      • P <- matrix(c(3:14), nrow = 4, byrow = TRUE, dimnames = list(rownames, colnames))
    • 访问矩阵元素
      • 访问4行2列,print(P[4,2])
      • 访问4行,print(P[4,])
    • 矩阵计算
      • R运算符对矩阵执行各种数学运算。 操作的结果也是一个矩阵。对于操作中涉及的矩阵,维度(行数和列数)应该相同。

  • 数组
    • 数组是可以在两个以上维度中存储数据的R数据对象。 例如 - 如果我们创建一个维度(2,3,4)的数组,则它创建4个矩形矩阵,每个矩阵具有2行和3列。 数组只能存储数据类型。
    • array()创建数组,使用向量作为输入,并使用dim参数中的值创建数组。
    • 命名
      • dimnames参数给数组中的行,列和矩阵命名
    • 访问数组元素
      • 与矩阵类似
    • 跨数组元素的计算
      • apply(x, margin, fun)
        • x是一个数组。
        • margin是所使用的数据集的名称。
        • fun是要应用于数组元素的函数。


  • 因子
    • 因子是用于对数据进行分类并将其存储为级别的数据对象。 可存储字符串和整数。 它们在具有有限数量的唯一值的列中很有用。像“男性”,“女性”和True,False等。
    • factor()函数通过将向量作为输入创建因子。
    • 数据帧的因子
      • 语言将文本列视为分类数据并在其上创建因子
    • 更改级别顺序
      • 可以通过使用新的等级次序再次应用因子函数来改变因子中的等级的顺序。
    • 生成因子级别
      • gl(n, k, labels)
        • n是给出级数的整数。
        • k是给出复制数目的整数。
        • labels是所得因子水平的标签向量。






上一篇:跟着高手一起啃R语言(3)
下一篇:blast比对结果-M8格式咨询
回复

使用道具 举报

25

主题

50

帖子

390

积分

中级会员

Rank: 3Rank: 3

积分
390
发表于 2018-9-6 17:01:48 | 显示全部楼层
幕布复制过来的吧,这个排版我看不下去了
回复 支持 反对

使用道具 举报

22

主题

38

帖子

183

积分

注册会员

Rank: 2

积分
183
 楼主| 发表于 2018-9-7 16:24:53 | 显示全部楼层
hijack 发表于 2018-9-6 17:01
幕布复制过来的吧,这个排版我看不下去了

是啊。。。那天上传照片总是上传不成功。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-10-22 15:09 , Processed in 0.033670 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.