第1章:
1、R语言的特性:
免费
**适合多种类型数据分析
可制图,数据可视化
可交互
匹配各种类型数据源
易扩展
拥有各种GUI,支持多平台
2、一个R会话示例:**
age <- c(1,3,5,2,11,9,3,9,12,3)
weight <- c(4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1)
mean(weight)
sd(weight)
cor(age,weight)
plot(重点内容
列表内容
age,weight)
q()
3、工作空间:
用户定义的对象都会保存在工作空间(workspace)里,作为一个镜像,下次启动R会自动载入。可以用getwd()和setwd(“mydirectory”)查看和设置工作目录,不在工作目录的文件,调用时需要写绝对路径。
用于管理R工作空间的函数:
4、帮助文档:
help.start()
5、包:
install.packages(“vcd”)
update.packages()
installed.packages()
library(vcd)
总结:这一章主要熟悉了R语言的开发环境RStudio,细节知识点并没有完全罗列出,目的是希望笔记能有尽可能少的信息量,抓住核心知识点,之后学习如果又发现这章的重点,会补充进去,迭代学习。
第2章:
1、按照个人要求的格式来创建含有研究信息的数据集,这是任何数据分析的第一步:(分以下两步)
选择一种数据结构来存储数据
将数据输入或导入到这个数据结构中
2、数据集:
数据集通常是由数据构成的一个矩形数组,行表示观测,列表示变量。(不同的行业对于数据集的行和列叫法不同。统计学家称它们为观测(observation)和变量(variable),数据库分析师则称其为记录(record)和字段(field),数据挖掘/机器学习学科的研究者则把它们叫做示例(example)和属性(attribute)。)
3、数据类型:
R可以处理的数据类型(模式)包括数值型、字符型、逻辑型(TRUE/FALSE)、复数型(虚数)和原生型(字节)。
4 、数据结构:
R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表。
向量:向量是用于存储数值型、字符型或逻辑型数据的一维数组。
a <- c(1,2,5,3,6,-2,4)
b <- c(“one”,”two”,”three”)
c <- c(TRUE,TRUE,TRUE,FALSE,TRUE,FALSE)
同一向量中无法混杂不同模式的数据。
a[c(2, 4)]用于访问向量a中的第二个和第四个元素,a <- c(2:6)等价于a <- c(2,3, 4, 5, 6)。
矩阵:
矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。可通过函数matrix创建矩阵。一般使用格式为:
其中vector包含了矩阵的元素,nrow和ncol用以指定行和列的维数,dimnames包含了可选的、以字符型向量表示的行名和列名。选项byrow则表明矩阵应当按行填充(byrow=TRUE)还是按列填充(byrow=FALSE),默认情况下按列填充。
创建矩阵:
y <- matrix(1:20,nrow=5,ncol=4)
y
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
cells <- c(1,26,24,68)
rnames <- c(“R1”,”R2”)
cnames <- c(“C1”,”C2”)
mymatrix <-matrix(cells,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rnames,cnames))
mymatrix
C1 C2
R1 1 26
R2 24 68
下标使用:x <- matrix(1:10,nrow=2)
x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10
x2, 2 4 6 8 10
x,2 3 4
x1,4 7
x1,c(4,5) 7 9
当维度超过2时,不妨使用数组。当有多种模式的数据时,不妨使用数据框。
数组:
其中vector包含了数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大
值,而dimnames是可选的、各维度名称标签的列表。
dim1 <- c(“A1”,”A2”)
dim2 <- c(“B1”,”B2”,”B3”)
dim3 <- c(“C1”,”C2”,”C3”,”C4”)
z <- array(1:24,c(2,3,4),dimnames=list(dim1,dim2,dim3))
z
, , C1
B1 B2 B3
A1 1 3 5
A2 2 4 6
, , C2
B1 B2 B3
A1 7 9 11
A2 8 10 12
, , C3
B1 B2 B3
A1 13 15 17
A2 14 16 18
, , C4
B1 B2 B3
A1 19 21 23
A2 20 22 24
元素z[1,2,3]为15。
数据框:
patientID <- c(1,2,3,4)
age <- c(25,34,28,52)
diabetes <- c(“Type1”,”Type2”,”Type1”,”Type1”)
status <- c(“Poor”,”Improved”,”Excellent”,”Poor”)
patientdata <- data.frame(patientID,age,diabetes,status)
patientdata
patientID age diabetes status
1 1 25 Type1 Poor
2 2 34 Type2 Improved
3 3 28 Type1 Excellent
4 4 52 Type1 Poor
patientdata[1:2]
patientID age
1 1 25
2 2 34
3 3 28
4 4 52
patientdata[c(“diabetes”,”status”)]
diabetes status
1 Type1 Poor
2 Type2 Improved
3 Type1 Excellent
4 Type1 Poor
patientdata$age
1 25 34 28 52
table(patientdata diabetes,patientdata status)
Excellent Improved Poor
Type1 1 0 2
Type2 0 1 0
attach(),detach,with():
summary(mtcars mpg)Min.1stQu.MedianMean3rdQu.Max.10.4015.4219.2020.0922.8033.90plot(mtcars mpg,mtcars disp)plot(mtcars mpg,mtcars$wt)
也可以写成:attach(mtcars)
summary(mpg)
Min. 1st Qu. Median Mean 3rd Qu. Max.
10.40 15.42 19.20 20.09 22.80 33.90
plot(mpg,disp)
plot(mpg,wt)
detach(mtcars)
对象冲突:mpg <- c(25,36,47)
attach(mtcars)
The following object is masked by .GlobalEnv:
mpg
plot(mpg,wt)
Error in xy.coords(x, y, xlabel, ylabel, log) :
‘x’ and ‘y’ lengths differ
mpg
1 25 36 47
使用with():with(mtcars,{summary(mpg,disp,wt)
+ plot(mpg,disp)
+ plot(mpg,wt)
+ })
with(mtcars,{
+ nokeepstats <- summary(mpg)
+ keepstats <<- summary(mpg)
+ })
nokeepstats
Error: object ‘nokeepstats’ not found
keepstats
Min. 1st Qu. Median Mean 3rd Qu. Max.
10.40 15.42 19.20 20.09 22.80 33.90
实例标识符:
因子:
类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor)。
diabetes <- factor(diabetes)
diabetes
1 Type1 Type2 Type1 Type1
Levels: Type1 Type2
status <- factor(status,ordered=TRUE)
status
1 Poor Improved Excellent Poor
Levels: Excellent < Improved < Poor
status <- factor(status,order=TRUE,levels=c(“Poor”,”Improved”,”Excellent”))
status
1 Poor Improved Excellent Poor
Levels: Poor < Improved < Excellent
patientID <- c(1,2,3,4)
age <- c(25,34,28,52)
diabetes <- factor(diabetes)
status <- c(“Poor”,”Imlproved”,”Excellent”,”Poor”)
diabetes <- factor(diabetes)
status <- factor(status,order=TRUE)
patientdata <- data.frame(patientID,age,diabetes,status)
str(patientdata)
‘data.frame’: 4 obs. of 4 variables:
patientID:num1234 age : num 25 34 28 52
diabetes:Factorw/2levels“Type1”,”Type2”:1211 status : Ord.factor w/ 3 levels “Excellent”<”Imlproved”<..: 3 2 1 3
summary(patientdata)
patientID age diabetes
Min. :1.00 Min. :25.00 Type1:3
1st Qu.:1.75 1st Qu.:27.25 Type2:1
Median :2.50 Median :31.00
Mean :2.50 Mean :34.75
3rd Qu.:3.25 3rd Qu.:38.50
Max. :4.00 Max. :52.00
status
Excellent:1
Imlproved:1
Poor :2
函数str(object)可提供R中某个对象(本例中为数据框)的信息。函数summary()会区别对待各个变量。它显示了连续型变量age的最小值、最大值、均值和各四分位数,并显示了类别型变量diabetes和status(各水平)的频数值。
列表:
g <- “My First List”
h <- c(25,26,18,39)
j <- matrix(1:10,nrow=5)
k <- c(“one”,”two”,”three”)
mylist <- list(title=g,ages=h,j,k)
mylist
$title
1 “My First List”
$ages
1 25 26 18 39
[3]
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10
4 “one” “two” “three”
mylist2 25 26 18 39
mylist[“ages”] 25 26 18 39
5、输入:
mydata <- data.frame(age=numeric(0),gender=character(0),weight=numeric(0))
mydata <- edit(mydata)
可修改,输入值,类型。
再次查看:
mydata <- edit(mydata)
fix(mydata)
(其它输入方式略)
总结:这一章主要介绍了数据结构,以及数据的输入输出,选择合适的数据结构能让我们更好地处理数据。多敲代码,多加练习思考,才能掌握好它们,为之后的学习做好准备。
Ctrl + B
Ctrl + I
Ctrl + Q
Ctrl + L
Ctrl + K
Ctrl + G
Ctrl + H
Ctrl + O
Ctrl + U
Ctrl + R
Ctrl + Z
Ctrl + Y
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。 —— [ 维基百科 ]
使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接等,详细语法参考帮助?。
本编辑器支持 Markdown Extra , 扩展了很多好用的功能。具体请参考Github.
Markdown Extra 表格语法:
项目 | 价格 |
---|---|
Computer | $1600 |
Phone | $12 |
Pipe | $1 |
可以使用冒号来定义对齐方式:
项目 | 价格 | 数量 |
---|---|---|
Computer | 1600 元 | 5 |
Phone | 12 元 | 12 |
Pipe | 1 元 | 234 |
定义 D
定义D内容
代码块语法遵循标准markdown代码,例如:
@requires_authorization
def somefunc(param1='', param2=0):
'''A docstring'''
if param1 > param2: # interesting
print 'Greater'
return (param2 - param1 + 1) or None
class SomeClass:
pass
>>> message = '''interpreter
... prompt'''
生成一个脚注1.
用 [TOC]
来生成目录:
使用MathJax渲染LaTex 数学公式,详见math.stackexchange.com.
更多LaTex语法请参考 这儿.
可以渲染序列图:
或者流程图:
即使用户在没有网络的情况下,也可以通过本编辑器离线写博客(直接在曾经使用过的浏览器中输入write.blog.csdn.net/mdeditor即可。Markdown编辑器使用浏览器离线存储将内容保存在本地。
用户写博客的过程中,内容实时保存在浏览器缓存中,在用户关闭浏览器或者其它异常情况下,内容不会丢失。用户再次打开浏览器时,会显示上次用户正在编辑的没有发表的内容。
博客发表后,本地缓存将被删除。
用户可以选择 把正在写的博客保存到服务器草稿箱,即使换浏览器或者清除缓存,内容也不会丢失。
注意:虽然浏览器存储大部分时候都比较可靠,但为了您的数据安全,在联网后,请务必及时发表或者保存到服务器草稿箱。