R基础

2023-03-13 13:54:03 浏览数 (1)

R语言基础

R语言是用函数处理数据

1、R与Rstudio

2、数据类型

3、数据结构

4、函数和R包

5、文件读写

6、绘图(一个应用的方向)

7、应用专题

一、R语言 入门认知

1.R语言与RStudio

1.1  什么是R

是什么:编程语言,软件,环境

作用:数据处理,统计,可视化

优点:开源,可扩展(R包,安装到电脑上使用这些R包),简单有效

1.2 什么是R Studio(让R语言变得更好用的软件)R语言的命令提示符是 “>”

集成开发环境

图形界面(给简陋的R语言披上了好看的外衣)

开源免费

1.3 如何在R Studio中新建项目(管理工作目录的最佳方式,setwd也可以,但是这个更简单)

步骤:file > new project > new directory

比如新建一个名为 LearnR的project,选择存放路径。新建好了看RSstudio的右下角模块中会有提示。

1.4 新建脚本(一个装代码的文件)

步骤:file > new file > R script

1.5 RStudio 介绍

脚本编辑器、控制台(代码运行和结果显示)、environment(对象/变量列表) history(历史命令)、集成窗口

1.6 字号设置(略)

1.7 与R”交互“

用户——发送命令

R——执行并返回结果

(1)控制台窗口

代码语言:javascript复制
sqrt()  #函数的典型特征,英文单词后面加一个括号。括号前面的英文是个函数,括号里面处理的东西是个数据。

(2)脚本编辑器

运行的方式是点run

脚本的运行方式有两个

(1)逐行运行  光标放在一行的任何位置

(2)选中运行    运行的快捷键是:ctrl enter

注释

使用“#”为脚本添加注释。让自己和其他协作者了解代码的用途。

R自动忽略“#”右侧的任何内容

保存

新建一个脚本,然后脚本保存。那么脚本就保存到了project里面。

代码语言:javascript复制
比如刚才新建了"LearnR"的project,这个脚本就默认保存到了和“LearnR”的project的同一个文件夹里面。
和“setwd”一个功能。

下次直接双击LearnR.Rproj即可打开Rstudio,打开后工作目录已经自动设置好。

2 R语言在跟你说啥

1、输出结果

代码语言:javascript复制
命令运行结果
图片
......

2、报错:Error

代码语言:javascript复制
检查命令
检查环境
修正后重新运行

3、警告:warning

代码语言:javascript复制
忽略,后面如果有报错或意外结果再检查

4、没反应

代码语言:javascript复制
例如
>a=3 5
>          #运行完出现大于号,表示已运行完成

5、太长时间卡住不懂

中止(点击红色键)或重启

6、出现“ “

代码语言:javascript复制
命令不完整,补全或按ESC键退出

7、出现提示信息

代码语言:javascript复制
检查是否有error,没有就可以忽略

8、进一步选择

回答它,不能不管。

二、数据类型和向量

1 数据类型:数值型、字符型、逻辑值

代码语言:javascript复制
数据值(numeric):1.3   2
字符型(character):"a"  带着引号出现,单引号和双引号都行。引号里装啥都是字符。不装引号的话容易找不到对象
逻辑型(logical):TURE 或者 FALSE 或者 NA(存在但未知)       null(不存在)
代码语言:javascript复制
判断数据类型的函数:class(),将要判断的内容写在括号里面

2 常见报错:引号、拼写错误、大小写

处理报错是数据分析的常态
代码语言:javascript复制
学会找报错的关键词
关键词 unexpect 出现的时候说明代码写错了。?在哪儿就是哪里有问题
function   函数有问题

3  一些敲代码的小技巧

代码语言:javascript复制
tips1:打出前几个字母,即可出现提示,摁上下键可翻动,摁 tab 键可自动补全
tips2:光标放在 > 后面,摁向上键,即可修改上一条命令重新运行

4   逻辑型数据

代码语言:javascript复制
比较运算的结果是逻辑值
>  
<
<=
>=
==  判断前后两个是否相等,如3==5  FALSE  
!=  判断前后两个是否不相等,如3!=4  TURE
代码语言:javascript复制
逻辑运算 多个逻辑条件的连接
与 &    例如: 3<5&4>5    FALSE
或 |    例如: 3<5|4>5    TRUE
非 !   例如: !(4>5)      TRUE

5 数据类型的判断和转换【前面学了class() 函数】

代码语言:javascript复制
is族函数,判断,返回值为TRUE或者FALSE
is.numeric()   是否数值型数据           is.numeric("4")  F   #形式大于内容
is.logical()   是否逻辑型数据
is.character()  是否字符型数据
代码语言:javascript复制
as族函数实现数据类型之间的转换
as.numeric()   将其他数据类型转换为数值型
as.logical()   将其他数据类型转换为逻辑型
as.character()  将其他数据类型转换为字符型

三、向量认知

1  多个数据如何组织?

批量的数据如何组织?了解数据结构的概念

1.1    数据结构包括四类:向量,数据框,矩阵,列表

      注意:

    (1)数据框约等于”表格“,不是完全等于表格。因为数据框不是电脑上的一个真实文件,并且要求每一列只能有一种数据类型。但是数据框可以导出,可以导出为一个表格。

    (2)数据框单独拿出的一列是向量(也是一串同一个类型的数据),视为一个整体

    (3)一个向量只能有一种数据类型,可以有重复值。

1.2  向量及后续  练习(钉钉群里的R_01文件)

双击.RProject文件,直接打开。

脚本打开是乱码的解决方式,ipad截图。

2 向量的生成

2.1  向量的生成(向量是一串同一种数据类型组合成的整体)

有4种办法

(1)用c()逐一放到一起   【 虽然只有一个字母,但是这也是个函数c】

代码语言:javascript复制
>c(2,5,6,2,9)
>c("a","f","md","b")   #字符型的数据用c组合的时候每个数据都要用引号"",要不然会找不到对象。

(2)连续的数字用冒号

代码语言:javascript复制
>1:5        #输出的结果是   1 2 3 4 5

(3)有重复的用rep(),有规律的序列用seq(),随机数用rnorm    【随机数函数可以用来编数据练习】

代码语言:javascript复制
>rep("x",times=3)   #输出的结果是 "x""x""x"
>seq(from=3,to=21,by=3)   #输出的结果是:3,6,9,12,15,18,21
>rnorm(n=3)               #输出3个随机数

(4)通过组合,产生更为复杂的向量【上难度了】

代码语言:javascript复制
>paste0(rep("x",times=3),1:3)  #输出的结果是:"x1""x2""x3"
[拆解上面的函数] x x x ,1 2 3
paste0做了个连接的事情,相同位置连接在一起,0表示是无缝连接。

2.2  对单个向量进行的操作

(1)赋值【标准的符号是:<-      随意的符号是:=       还有一个快捷键是alt加减号】

代码语言:javascript复制
>x <- c(1,3,5,1)   #规范的赋值符号
>   
>x    这个输出的结果是:1,3,5,1
[运行完第一行代码就出现了一个大于号。直接运行x就行了]
代码语言:javascript复制
>x = c(1,3,5,1)  #这个是随意的写法
代码语言:javascript复制
#赋值和输出一起实现 
【第一种方法,加个括号】
>(x=c(1,3,5,1))
【第二种方法,把两句代码写在同一行上,两句代码中间用分号隔开,这个方法更加常用】
>x=c(1,3,5,1);x

关于变量名称的规则:变量名称简单点比较好

可以使用的名字:字母(c不行,因为c是一个函数)、英语单词(函数名字不可以用)、字母和数字组合(但是必须是字母在前面开头)、下划线可以用

不可以使用的名字:变量命名里面带空格不能用(可以用下划线替代空格和中划线)、中文名不能用

(2)简单数学计算

代码语言:javascript复制
>x=c(1,3,5,1)
>x 1
>log(x)
>sqrt(x)

(3)根据某条件进行判断,生成逻辑值向量

代码语言:javascript复制
>x=c(1,3,5,1)
>x>3          #输出的结果是F F T F
>x==3
【==:这个返回的结果是FALSE 或者 TURE】

(4)初级统计

max(x)      #最大值

min(x)       #最小值

mean(x)      #均值

median(x)      #中位数

var(x)        #方差

sd(x)         #标准差

sum(x)       #总和

代码语言:javascript复制
>x=c(1,3,5,1)
>length(x)              #长度
代码语言:javascript复制
>x=c(1,3,5,1)
>unique(x)    #去重复  第一次出现不叫重复,第2次出现或第多次出现才叫重复
              #输出的结果是1,3,5
代码语言:javascript复制
>x=c(1,3,5,1)
>duplicated(x)   #判断下元素中有没有重复,第一次出现算没重复
                 #输出的结果是F F F T
【如果想反过来,就用!这个非常重要,需要记住】
代码语言:javascript复制
>x=c(1,3,5,1)
>table(x)    #重复值统计
             #输出的结果
代码语言:javascript复制
>x=c(1,3,5,1)
>sort(x)  #排序,R语言按照自己的想法排,那么怎么看R语言自己的想法呢?答:用问号加函数名 ?sort 查看帮助文档
【查看完帮助文档后,可以自己改默认值,但是要在作者允许的范围内】
>sort(x,decreasing = F)
>sort(x,decreasing = T)

0 人点赞