学习R过程中的一些小总结

⚪ set.seed()
  • 用于设定随机数种子,一个特定的种子可以产生一个特定的伪随机序列,这个函数的主要目的,是让你的模拟能够可重复出现,因为很多时候我们需要取随机数。
  • 但你需要使用随机数时,可保证你在执行或者调试后,计算机所创造的随机数保持不变。
  • set.seed(1)中“1”表示的种子的序号数,并不是传统意义上的数字,而是作为一种标记,并不参与运算。
  • 简单地理解为括号里的数只是一个编号而已,例如set.seed(100)不应将括号里的数字理解成“一百”,而是应该理解成“编号为一零零的随机数发生”
⚪ search()函数:查看当前加载了哪些安装包。
> search()
 [1] ".GlobalEnv"        "tools:rstudio"     "package:stats"    
 [4] "package:graphics"  "package:grDevices" "package:utils"    
 [7] "package:datasets"  "package:methods"   "Autoloads"        
[10] "package:base" 
⚪ R要么输出结果,要么将结果保存在一个变量中,要同时完成两种操作,可以用括号将赋值语句括起来。
> a <- c(1,2,3)  #赋值
> a  #输出结果
[1] 1 2 3
> (a <- c(1,2,3)) #赋值同时也输出结果
[1] 1 2 3
⚪ str()函数和head()函数
  • str():显示对象的内部结构,诊断功能以及摘要(在某种程度上为dput)的替代方法。 理想情况下,每个“基本”结构仅显示一行。 它特别适合紧凑地显示(可能嵌套的)列表的(缩写)内容。 为任何R对象提供合理的输出。
  • head():返回向量,矩阵,表,数据框或函数的第一部分或最后一部分。 由于head()和tail()是通用函数,因此它们也可能已扩展到其他类。
    n:一个整数。 如果为正数或零,则结果对象的大小:向量(包括列表)的元素数,矩阵或数据帧的行或函数的行。 如果为负,则除x的n个最后/第一个元素外的所有元素。
    row:如果没有行名,则从行号创建它们。
> str(letters)
 chr [1:26] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" ...
> str(head)
function (x, ...) 
> str(ls)
function (name, pos = -1L, envir = as.environment(pos), all.names = FALSE, pattern, sorted = TRUE)  
> head(letters)
[1] "a" "b" "c" "d" "e" "f"
> head(letters, n = -5L)
 [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q"
[18] "r" "s" "t" "u"
> head(letters, n = -6L)
 [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q"
[18] "r" "s" "t"
⚪ 管道操作符号 %>%

magrittr包被定义为一个高效的管道操作工具包,通过管道的连接方式,让数据或表达式的传递更高效,使用操作符%>%,可以直接把数据传递给下一个函数调用或表达式。

  • 向右操作符 %>%

用法:lhs %>% rhs
①使用%>%进行一元函数调用:当函数仅需要一个参数时,x%>%f等同于f(x)
②将lhs作为rhs调用中的第一个参数:当在rhs调用中需要多个参数时,%>%的默认行为是将lhs作为第一个参数,即x%>%f(y)等同于f(x, y)。
③若希望lhs到rhs的位置不同于第一个。可以使用点作为占位符。
例如,y%>%f(x, .)等同于f(x, y),而z%>%f(x, y, arg =.)等效于f(x, y, arg = z)。

> iris %>% head
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

> iris %>% head(10)
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1           5.1         3.5          1.4         0.2  setosa
2           4.9         3.0          1.4         0.2  setosa
3           4.7         3.2          1.3         0.2  setosa
4           4.6         3.1          1.5         0.2  setosa
5           5.0         3.6          1.4         0.2  setosa
6           5.4         3.9          1.7         0.4  setosa
7           4.6         3.4          1.4         0.3  setosa
8           5.0         3.4          1.5         0.2  setosa
9           4.4         2.9          1.4         0.2  setosa
10          4.9         3.1          1.5         0.1  setosa


# Lambda expressions:
iris %>%
  {
    size <- sample(1:10, size = 1)
    rbind(head(., size), tail(., size))
  }
  
      Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
1            5.1         3.5          1.4         0.2    setosa
2            4.9         3.0          1.4         0.2    setosa
3            4.7         3.2          1.3         0.2    setosa
4            4.6         3.1          1.5         0.2    setosa
5            5.0         3.6          1.4         0.2    setosa
146          6.7         3.0          5.2         2.3 virginica
147          6.3         2.5          5.0         1.9 virginica
148          6.5         3.0          5.2         2.0 virginica
149          6.2         3.4          5.4         2.3 virginica
150          5.9         3.0          5.1         1.8 virginica


# renaming in lambdas:
iris %>%
  {
    my_data <- .
    size <- sample(1:10, size = 1)
    rbind(head(my_data, size), tail(my_data, size))
  }

    Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
1            5.1         3.5          1.4         0.2    setosa
2            4.9         3.0          1.4         0.2    setosa
3            4.7         3.2          1.3         0.2    setosa
4            4.6         3.1          1.5         0.2    setosa
5            5.0         3.6          1.4         0.2    setosa
6            5.4         3.9          1.7         0.4    setosa
7            4.6         3.4          1.4         0.3    setosa
8            5.0         3.4          1.5         0.2    setosa
9            4.4         2.9          1.4         0.2    setosa
10           4.9         3.1          1.5         0.1    setosa
141          6.7         3.1          5.6         2.4 virginica
142          6.9         3.1          5.1         2.3 virginica
143          5.8         2.7          5.1         1.9 virginica
144          6.8         3.2          5.9         2.3 virginica
145          6.7         3.3          5.7         2.5 virginica
146          6.7         3.0          5.2         2.3 virginica
147          6.3         2.5          5.0         1.9 virginica
148          6.5         3.0          5.2         2.0 virginica
149          6.2         3.4          5.4         2.3 virginica
150          5.9         3.0          5.1         1.8 virginica

x %>% f 等同于 f(x)
x %>% f(y) 等同于 f(x, y)
y %>% f(x, ., z) 等同于 f(x, y, z)
x %>% f %>% g %>% h 等同于 h(g(f(x)))

  • 向左操作符 %T>%
  • 解释操作符 %$%
  • 复合赋值操作符 %<>%

reference R语言中的管道操作符

⚪ 回归分析中,car::dwtest() 指定调用car包中的dwtest函数,而非lmtest包中的DW检验。
  • DW检验:杜宾-瓦特森检验。是J.Durbin和G.S.Watson于1951年提出的一种适用于小样本的一种检验方法,只能用于检验随机扰动项具有一阶自回归形式的序列相关问题。
  • 随机扰动项的一阶自回归形式为:ε(t)=ρε(t−1)+u(t),其中u(t)是不相关序列。
    为了检验序列的相关性,构造的假设是 H0:ρ=0。
    DW≈2(1-phat),取值范围[0,4]。
⚪ R语言apply函数族
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值