Learning R笔记(一)

基本操作

  • apropos函数能找到匹配其输入的变量以及函数,结合正则表达式使用更好
  • 用all.equal函数检查浮点数是否相等,容忍度默认为1.5e-8,如果相等返回TRUE,不相等返回差值。将其嵌入isTRUE函数则返回TRUE或者FALSE
  • 使用<<-对全局变量赋值,或者使用assign函数,参数:“变量名”,值,如果全局赋值加上globalenv()参数。assign函数高级用法,需少用。
  • 一般直接输入变量名就会输出结果,是为隐式调用print函数,从linux终端运行等需要加上print函数。
  • 特殊数字:Inf,-Inf,NaN,NA。NaN(not a number),NA(not available)代表缺失值。is.finite函数检查特殊数字,正常数字返回TRUE,is.infinite函数相反。is.nan函数检查NaN,is.na函数检查NA,NaN。
  • 三种逻辑:TRUE,FALSE,NA。any和all函数检查逻辑向量
  • head函数可显示前几行(默认为6行),head(‘‘,n)显示前n行。
  • 工作目录:查看getwd(),更改setwd("path")。绝对路径的书写用/书写,windows下可以用\\,为了在各个系统下保持一致,尽量用/间隔
  • 清除工作区的变量
#清除所有变量
rm(list=ls())

#清除单个变量
rm(data)

#清除多个变量
rm(list=c(‘data1‘,‘data2‘))
  • str函数能显示对象的结构,对数据框和嵌套列表很有用
> str(a)
‘data.frame‘:	13 obs. of  3 variables:
 $ class: Factor w/ 7 levels "浜岀彮","涓夌彮",..: 7 6 5 4 3 1 1 1 1 2 ...
 $ name : Factor w/ 10 levels "","122","闄堜附鐏\xb5,115",..: 1 2 1 1 2 8 7 6 5 4 ...
 $ score: int  NA NA NA NA NA 119 96 NA NA NA ...
  • attributes函数能显示当前对象的所有属性列表
> attributes(a)
$names
[1] "class" "name"  "score"

$class
[1] "data.frame"

$row.names
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13

 


生成数据

  • vector函数构建一个指定类型和长度的矢量,结果可以为0,FALSE,空字符串
> vector(‘numeric‘,5)#numeric(5)
[1] 0 0 0 0 0
> vector(‘logical‘,5)#logical(5)
[1] FALSE FALSE FALSE FALSE FALSE
> vector(‘character‘,5)#character(5)
[1] "" "" "" "" ""
> vector(‘list‘,2)
[[1]]
NULL

[[2]]
NULL
  • summary数据汇总:最小值,1/4值,中指,3/4值,最大值。对数据框使用summary函数,相当于对每一列使用summary函数。
  • letters包含a到z的小写值,LETTERS对应大写字母。
> letters[4]
[1] "d"
> letters[1:4]
[1] "a" "b" "c" "d"
> letters[]
 [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l"
[13] "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x"
[25] "y" "z"
  • month.name包含月份的名字。同letters用法一样
  • 常用随机数函数:runif均匀分布,rnorm正态分布  
#runif(n,min,max),默认产生0-1之间的随机数
> runif(3)
[1] 0.3308360 0.5573855 0.9720616
> runif(3,min=1,max=9)
[1] 8.946071 4.915268 5.763918
#rnom可指定参数mean:平均数,sd:标准差,默认mean=0,sd=1
> rnorm(5)
[1] 0.55080064 -0.24792330 -0.09480838 0.65215600
[5] -0.96422061
> rnorm(5,mean=2,sd=0.3)
[1] 2.373522 2.176204 1.948216 2.371155 2.070872
  • sample函数为数据抽样,三个参数:数据,抽取个数,replace(TRUE是有放回的抽取,FALSE相反)
  • seq函数产生序列:seq.int函数、seq_len函数、seq_along函数
#seq.int创建一个序列,与冒号有所不同,指定步长时也不一样
> 2:8
[1] 2 3 4 5 6 7 8
> seq.int(2:8)
[1] 1 2 3 4 5 6 7
> seq.int(4,10,3)#指定步长3
[1]  4  7 10
#seq_len函数创建一个从1到它的输入值的序列,输入为0时创建一个空值
> seq_len(0)
integer(0)
> attributes(seq_len(0))
NULL
#seq_along创建一个从1开始、长度为其输入值的序列
> seq_along(letters[1:10])
 [1]  1  2  3  4  5  6  7  8  9 10
  • rep函数:重复使用元素创建矢量
#整体重复三遍
> rep(1:5,3)
 [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
#每个元素重复三遍
> rep(1:5,each=3)
 [1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5
#每个元素重复个数:1:5
> rep(1:5,times=1:5)
 [1] 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
#重复矢量直到达到15的长度
> rep(1:5,length.out=15)
 [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
  • 生成矩阵和数组array和matrix函数
#array创建数组,另个参数:值,维度dim
> array(1:12,dim=c(3,4))
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12
#matrix创建矩阵,需要指定行数或者列数,默认输入的值按照列填充,或者指定参数byrow=TRUE按行填充
> matrix(1:12,nrow=3)
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12
> matrix(1:12,nrow=3,byrow=TRUE)
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12

  


向量,矩阵和数组

1.length函数

> length(1:5)
[1] 5
#缺失值NA也被计入长度
> length(c(TRUE,FALSE,NA))
[1] 3
#返回字符串的数目
> length(c(‘A‘,‘B‘,‘C‘))
[1] 3
#若想返回每个字符串中字符的长度用nchar
> nchar(c(‘Axc‘,‘Bcdsfs‘,‘Cdsss‘))
[1] 3 6 5

若用于矩阵和数组则返回所有维度的乘积

2.命名name

可以在创建数据时指定名称,也可以在事后命名。

#kiwi fruit用引号括起来了,因为其名称无效:有空格
#可以忽略其他元素命名
> c(apple=1,"kiwi fruit"=2,3)
     apple kiwi fruit
         1          2          3
> x <- 1:3
> names(x) <- c("apple","kiwi fruit",‘‘)
> x
     apple kiwi fruit
         1          2          3
#names函数返回名称,若没有一个元素有名字则返回NULL
> names(x)
[1] "apple"      "kiwi fruit" ""
> names(1:4)
NULL
#创建数组时命名,矩阵同样
> x <- array(1:6,dim=c(2,3),dimnames=list(c("one","tow"),c("ein","zwei","drei")))
> x
ein zwei drei
one 1 3 5
tow 2 4 6

#rownames、colnames和dimnames函数
> rownames(x)
[1] "one" "tow"
> colnames(x)
[1] "ein" "zwei" "drei"
> dimnames(x)
[[1]]
[1] "one" "tow"

[[2]]
[1] "ein" "zwei" "drei"

3.行、列和维度

dim函数对于数组和矩阵返回所有维度。nrow和ncol函数分别返回行和列。norm、ncol和dim用于向量时返回NULL。NROW和NCOL函数把向量看做列向量

4.合并矩阵

c函数拼接矩阵把他们转换成向量,cbind和rbind分别按col列和row行合并矩阵

> x <- matrix(1:12,nrow=3);x
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12
> y <- matrix(13:24,nrow=3);y
     [,1] [,2] [,3] [,4]
[1,]   13   16   19   22
[2,]   14   17   20   23
[3,]   15   18   21   24
> c(x,y)
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16
[17] 17 18 19 20 21 22 23 24
> cbind(x,y)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,]    1    4    7   10   13   16   19   22
[2,]    2    5    8   11   14   17   20   23
[3,]    3    6    9   12   15   18   21   24
> rbind(x,y)
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12
[4,]   13   16   19   22
[5,]   14   17   20   23
[6,]   15   18   21   24

5.数学运算

除法/,转置t函数,点乘%*%和外乘%o%。solve矩阵求反

向量内乘
> 1:3%*%2:4
     [,1]
[1,]   20
#向量外乘
> 1:3%o%2:4
     [,1] [,2] [,3]
[1,]    2    3    4
[2,]    4    6    8
[3,]    6    9   12
> x<-matrix(1:6,nrow=2);x
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
> y<-matrix(1:6,nrow=3);y
     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6
#矩阵相乘
> x%*%y
     [,1] [,2]
[1,]   22   49
[2,]   28   64
> x<-matrix(runif(9),nrow=3);x
          [,1]       [,2]      [,3]
[1,] 0.6136448 0.05304645 0.7378249
[2,] 0.1922476 0.18177634 0.9545918
[3,] 0.9050422 0.65400112 0.2954112
#矩阵求逆
> solve(x)
           [,1]      [,2]       [,3]
[1,]  1.6984882 -1.389698  0.2484943
[2,] -2.4026083  1.448092  1.3214365
[3,]  0.1154494  1.051693 -0.3016769
#矩阵转置
> t(x)
           [,1]      [,2]       [,3]
[1,] 0.98387863 0.6292973 0.03753178
[2,] 0.09061386 0.5971163 0.10537436
[3,] 0.80727162 0.5403768 0.55767250

  

时间: 2024-10-18 04:10:31

Learning R笔记(一)的相关文章

?统计学习精要(The Elements of Statistical Learning)?课堂笔记(三)

照例文章第一段跑题,先附上个段子(转载的哦~): I hate CS people. They don't know linear algebra but want to teach projective geometry. They don't know any probability but want to use graphical models. They don't understand stats at all but still do machine learning like c

Deep Learning论文笔记之(一)K-means特征学习

Deep Learning论文笔记之(一)K-means特征学习 [email protected] http://blog.csdn.net/zouxy09          自己平时看了一些论文,但老感觉看完过后就会慢慢的淡忘,某一天重新拾起来的时候又好像没有看过一样.所以想习惯地把一些感觉有用的论文中的知识点总结整理一下,一方面在整理过程中,自己的理解也会更深,另一方面也方便未来自己的勘察.更好的还可以放到博客上面与大家交流.因为基础有限,所以对论文的一些理解可能不太正确,还望大家不吝指正

Machine Learning 学习笔记

Machine Learning 学习笔记在海军陆战队服役超过 10 年后,我于去年 7 月份退役了.随后在 8 月份找到了一份赌场的工作做公关,到今年 2 月中旬的时候又被辞退了.到 5 月中旬的时候我在 DE 协会找到了一份临时的"初级用户体验工程师"工作,而到了 8 月底我则成了正式的"用户体验工程师". 当我丢掉赌场的那份工作时,我就在想公关这行可能真的不适合我.我想做一名程序员.于是我开始节衣缩食学习编程.家人对我的情况非常担心.从 2 月份到 5 月份的

?统计学习精要(The Elements of Statistical Learning)?课堂笔记(一)

前两天微博上转出来的,复旦计算机学院的吴立德吴老师在开?统计学习精要(The Elements of Statistical Learning)?这门课,还在张江...大牛的课怎能错过,果断请假去蹭课...为了减轻心理压力,还拉了一帮同事一起去听,eBay浩浩荡荡的十几人杀过去好不壮观!总感觉我们的人有超过复旦本身学生的阵势,五六十人的教室坐的满满当当,壮观啊. 这本书正好前阵子一直在看,所以才会屁颠屁颠的跑过去听.确实是一本深入浅出讲data mining models的好书.作者网站上提供免

R 笔记

(1) > x = 11> x[1] 11> print(x)[1] 11> y <- 7> ls()[1] "x" "y"> rm(y)> y <- 9> x1 = c(1,3,5,7,9)> x1[1] 1 3 5 7 9> sqrt(y)[1] 3> log(y)[1] 2.197225> log2(y)[1] 3.169925> exp(y)[1] 8103.084 &

【deep learning学习笔记】Recommending music on Spotify with deep learning

主要内容: Spotify是个类似酷我音乐的音乐网站,做个性化音乐推荐和音乐消费.作者利用deep learning结合协同过滤来做音乐推荐. 具体内容: 1. 协同过滤 基本原理:某两个用户听的歌曲都差不多,说明这两个用户听歌的兴趣.品味类似:某两个歌曲,被同一群人听,说明这两个歌曲风格类似. 缺点: (1)没有利用歌曲本身的特征(信息) (2)无法对"层级"的item进行处理,对于歌曲来说,这种层级关系体现在:专辑-主打歌-副歌,上面,这几种因素并不是同等重要的 (3)冷启动问题:

【转】Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现

原作者:zouxy09 原文链接:http://blog.csdn.net/zouxy09/article/details/9993371 Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 [email protected] http://blog.csdn.net/zouxy09          自己平时看了一些论文,但老感觉看完过后就会慢慢的淡忘,某一天重新拾起来的时候又好像没有看过一样.所以想习惯地把一些感觉有用的论文中的知识点总结整理一下,一方面在整理过程中,自己

?统计学习精要(The Elements of Statistical Learning)?课堂笔记(二)

继续一周一次的课堂笔记 :D 昨天去晚了站着听讲,感觉好好啊,注意各种集中.想想整个教室里面就是我和老师是站着的,自豪感油然而生. 第二次课讲的东西依旧比较简单,是这本书第二章的前半部分.作为一个好久之前已经预习过的孩子,我表示万分的得意(最小二乘法难道不是三四年前就学过的?话说以后我再面人的时候,就让他推导最小二乘估计量,嘻嘻...考验一下基本功). ------------原谅我的废话,笔记开始------------ 简单预测方法:最小二乘法(以下沿用计量经济学的习惯,简称OLS) OLS

Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)

Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 [email protected] http://blog.csdn.net/zouxy09          自己平时看了一些论文,但老感觉看完过后就会慢慢的淡忘,某一天重新拾起来的时候又好像没有看过一样.所以想习惯地把一些感觉有用的论文中的知识点总结整理一下,一方面在整理过程中,自己的理解也会更深,另一方面也方便未来自己的勘察.更好的还可以放到博客上面与大家交流.因为基础有限,所以对论文的一些理解可能不太正确,还望大家不