入门基础知识

て烟熏妆下的殇ゞ 提交于 2019-12-02 16:49:08

一、R语言介绍

  随着数据量的极剧增加,需要从海量的数据中收集有用的信息------>数据挖掘

  数据分析科学逐渐火热。下图是典型的数据分析步骤

 

  1.1、为什么要使用R?

    主要的总结几点就是:

      1、R是完全免费的

      2、拥有顶尖的制图水准

      3、交互式的强大平台

      4、有很多可以直接利用的数据库

  1.2、R的安装和获取

    在网址:http://cran.r-project.org ,进行免费下载,然后傻瓜式安装,如果出现相关问题,百度就可以很好解决。这里不过多介绍。
    推荐使用Rstudio作为编译器,方便。

  1.3、R的使用    

  R是区分大小写的解释型语言。

    数据类型:向量,矩阵,数据框,列表(各种对象的集合)

    使用<-表示赋值和=,相同(不推荐使用等号赋值) 

age <- c(1,3,5,2,11,9,3,9,12,3)#向量age
weight <- c(4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1)#向量weight
mean(weight)#求平均值
sd(weight)#求标准差
cor(age,weight)#求相关度
plot(age,weight)#以图形的形式显示

注:后面会介绍自定义图形(修改图形参数)

    在命令窗口输入demo(),会出现很多图像演示:demo(persp),demo(graphics)等等

           

    获取帮助

    R中的帮助函数:

    

    管理R的工作空间的函数:

    

    示例代码:

setwd("C:/myprojects/project1")#设置当前工作目录,注意斜杠的正反
options()
options(digits=3)#显示为具有小数点后三位有效数字的格式
x <- runif(20)
summary(x)
hist(x)
q()

输入和输出:

函数source("filename")可在当前会话中执行一个脚本。如果文件名中不包含路径, R
假设此脚本在当前工作目录中。

函数c()以向量的形式输入

 

 

 

 

   

 

 

 

 

 

 

二、创建数据集

按照个人要求的格式来创建含有研究信息的数据集,这是任何数据分析的第一步。

  选择一种数据结构来存储数据;

  将数据输入或导入到这个数据结构中。

2.1数据集的概念

数据集通常是由数据构成的一个矩形数组, 行表示观测,列表示变量。
R中有许多用于存储数据的结构,包括标量、向量、数组、数据框和列表。
R可以处理的数据类型(模式)包括数值型、字符型、逻辑型( TRUE/FALSE)、复数型(虚
数)和原生型(字节)。


2.2、数据结构

R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表。

 

R中, 对象( object)是指可以赋值给变量的任何事物,包括常量、数据结构、函数,
甚至图形。对象都拥有某种模式,描述了此对象是如何存储的,以及某个类,像print这样的
泛型函数表明如何处理此对象。

因子( factor)是名义型变量或有序型变量。它们在R中被特殊地存储和处理。

2.2.1向量

 

 示例:

a <- c(1, 2, 5, 3, 6, -2, 4)
b <- c("one", "two", "three")
c <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE)

a是数值型向量, b是字符型向量,而c是逻辑型向量。 单个向量中的数据必须
拥有相同的类型或模式(数值型、字符型或逻辑型)。

标量是只含一个元素的向量,例如f <- 3g <- "US"h <- TRUE。它们用于保存
常量。

向量元素的访问示例:(从1开始)  

a <- c("k", "j", "h", "a", "c", "m")
a[3]#[1] "h"
a[c(1, 3, 5)]#[1] "k" "h" "c"
a[2:6]#[1] "j" "h" "a" "c" "m"

2.2.2、矩阵

过函数matrix()创建矩阵。

 

 2.2.3、数组

 2.2.4、数据框

数据框可通过函数data.frame()创建:

  mydata <- data.frame(col1, col2, col3,...)

其中的列向量col1col2col3等可为任何类型(如字符型、数值型或逻辑型)。

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

将多个模式按照列放到一起组成数据框。

 数据框的取值:

patientdata[1:2] 
patientdata[c("diabetes", "status")]
patientdata$age

如果想生成变量的级联表:

table(patientdata$diabetes, patientdata$status)

结果:

        Excellent Improved Poor
  Type1         1        0    2
  Type2         0        1    0在每个变量名前都键入一次patientdata$可能会让人生厌,所以不妨走一些捷径。 1. attach()、 detach()和with() 

函数attach()可将数据框添加到R的搜索路径中 。

summary(mtcars$mpg)
plot(mtcars$mpg, mtcars$disp)
plot(mtcars$mpg, mtcars$wt)

上面代码可以替换成:

attach(mtcars)
summary(mpg)
plot(mpg, disp)
plot(mpg, wt)
detach(mtcars)

函数detach()将数据框从搜索路径中移除。 detach()并不会对数据框本身做任何处理。 防止重名的影响

> mpg <- c(25, 36, 47)
> attach(mtcars)
The following object(s) are 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(mtcars, {
  print(summary(mpg))
  plot(mpg, disp)
  plot(mpg, wt)
})

在这种情况下,花括号{}之间的语句都针对数据框mtcars执行,这样就无需担心名称冲突了。

函数with()的局限性在于,赋值仅在此函数的括号内生效。考虑以下代码:

 

> with(mtcars, {
stats <- summary(mpg)
stats
})
Min. 1st Qu. Median Mean 3rd Qu. Max.
10.40 15.43 19.20 20.09 22.80 33.90
> stats
Error: object 'stats' not found

如果你需要创建在with()结构以外存在的对象,使用特殊赋值符<<-替代标准赋值符( <-)即可,

> 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.43 19.20 20.09 22.80 33.90

相对于attach(),多数的R书籍更推荐使用with()

 2、实例标识符

 R中,实例标识符( case identifier)可通过数据框操作函数中的rowname选项指定。例如,语句:

patientdata <- data.frame(patientID, age, diabetes,status,row.names=patientID)

patientID指定为R中标记各类打印输出和图形中实例名称所用的变量。

 2.2.5、因子

变量可归结为名义型、有序型或连续型变量。

名义型变量是没有顺序之分的类别变量。

    糖尿病类型DiabetesType1Type2)是名义型变量的一例。即使在数据中Type1编码为1Type2编码为2,这也并不意味着二者是有序的。

有序型变量表示一种顺序关系,而非数量关系。

    病情Statuspoorimprovedexcellent)是顺序型变量的一个上佳示例。我们明白,病情为poor(较差)病人的状态不如improved(病情好转)的病人,但并不知道相差多少

连续型变量可以呈现为某个范围内的任意值,并同时表示了顺序和数量。

    年龄Age就是一个连续型变量,它能够表示像14.522.8这样的值以及其间的其他任意值。很清楚, 15岁的人比14岁的人年长一岁。

 

类别(名义型)变量和有序类别(有序型)变量在R中称为因子factor)。 因子在R中非常重要,因为它决定了数据的分析方式以及如何进行视觉呈现。

函数factor()以一个整数向量的形式存储类别值,整数的取值范围是[1...k](其中k是名义型变量中唯一值的个数),同时一个由字符串(原始值)组成的内部向量将映射到这些整数上。

举例来说,假设有向量:diabetes <- c("Type1", "Type2", "Type1", "Type1")语句diabetes <- factor(diabetes)将此向量存储为(1, 2, 1, 1),并在内部将其关联为1=Type12=Type2(具体赋值根据字母顺序而定)。

要表示有序型变量,需要为函数factor()指定参数ordered=TRUE。给定向量:

 

status <- c("Poor", "Improved", "Excellent", "Poor")
status <- factor(status, ordered=TRUE)

语句status <- factor(status, ordered=TRUE)会将向量编码为(3, 2, 1, 3),并在内部将这些值关联为1=Excellent2=Improved以及3=Poor。另外,针对此向量进行的任何分析都会将其作为有序型变量对待,并自动选择合适的统计方法。

对于字符型向量,因子的水平默认依字母顺序创建。 你可以通过指定levels选项来覆盖默认排序。例如:

status <- c("Poor", "Improved", "Excellent", "Poor")
status <- factor(status, ordered=TRUE)
status
status <- factor(status, order=TRUE,
                 levels=c("Poor", "Improved", "Excellent"))
status

请保证指定的水平与数据中的真实值相匹配,因为任何在数据中出现而未在参数中列举的数据都将被设为缺失值。

数值型变量可以用levelslabels参数来编码成因子。如果男性被编码成1,女性被编码成2,则以下语句: 而且所有不是12的性别变量将被设为缺失值。

sex <- factor(sex, levels=c(1, 2), labels=c("Male", "Female"))

代码清单2-6演示了普通因子和有序因子的不同是如何影响数据分析的。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

三、图形初阶

四、基本数据管理

五、高级数据管理

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!