1030 chapter13 & 14

不要使用管道的情况

  • 操作步骤超过10个
  • 多个输入和输出
  • 操作步骤构成有复杂依赖关系的有向图

其他工具

  • tidyverse中所有包都会自动加载%>%
  • %T>% 返回左侧想
  • %<>% 可以进行赋值操作

创建函数

  • 选择函数名称
  • 列举function中所有参数
  • 将编好的代码放入函数体中

p188 练习题

  1. finite = TRUE 会丢失无限元素
    若na.rm值是FALSE,则所有有关NA的操作都会返回NA
 rescale01 <- function(x) {
  rng <- range(x, na.rm = TRUE, finite = TRUE)
  y <- (x - rng[1]) / (rng[2] - rng[1])
  y[y == -Inf] <- 0
  y[y == Inf] <- 1
  y
}
variance <- function(x, na.rm = TRUE) {
  n <- length(x)
  m <- mean(x, na.rm = TRUE)
  sq_err <- (x - m) ^ 2
  sum(sq_err) / (n - 1)
}
both_na <- function(x, y) {
  sum(is.na(x) & is.na(y))
}
both_na(c(NA, NA,  1, 2),
        c(NA,  1, NA, 2))
 [1] 1
both_na(c(NA, NA,  1, 2, NA, NA, 1),
        c(NA,  1, NA, 2, NA, NA, 1))
 [1] 3
  1. is.directory主要用来检查x是否是路径
    is.readable用来检查x是否可读

人与函数

命名原则

  • snake_case,小写单词,用下划线隔开
  • camelCase,首单词小写,其余首字母大写
  • 功能类似的命名具有一致性

p190练习题

  1. f1 检查是否是字符向量
    f2 去掉向量中的最后一个,drop_last()
    f3 为每个x重复一次y recycle
  2. rnorm() 单变量正态分布
    MASS:mvrorm 多变量正态分布
  3. r* functions always sample from distributions: for example, rnorm(), rbinom(), runif(), and rexp().
    d* functions calculate the probability density or mass of a distribution: For example, dnorm(), dbinom(), dunif(), and dexp().

条件执行

if(condition){

wei=

你可能感兴趣的:(1030 chapter13 & 14)