R语言简介与下载安装

打印 上一主题 下一主题

主题 1786|帖子 1786|积分 5358

 1.R语言简介与下载安装



  • R语言其诞生于新西兰奥克兰大学,由Ross Ihaka 和Robert Gentleman开发,属于商业软件S语言的替代品;
  • R语言是一款开源的编程类工具,专门用于数据清洗、整理、统计分析、可视化以及数据挖掘等方面,而且不受体系平台的限制。
在https://www.r-project.org/ 网站中可以下载到R语言,最好选择清华的镜像。
为了能够更好的写代码,可以下载RStudio软件,即R语言的GUI(Graphical User Interface)。 https://www.rstudio.com/
2.第三方包的下载与加载

使用代码下载:
install.packages(package_name)
手动下载:

使用代码加载
library(package_name)
require(package_name)
library 和require 都是加载包,区别在于,输出的错误信息不一致。
3.怎样查看资助文档



  • 知包知函数 help
help(lda,package='MASS')


  • 知函数未知包 help.search
help.search('dbscan')


  • 知包未知函数 apropos
library(lmtest)
library(car)
apropos('test')



  • 未知函数未知包 RSiteSearch
RSiteSearch('Hosmer-Lemeshow') # 拟合度检验

4.R语言中的数据布局
向量的创建



  • 手工输入法——C
目标抽取法
#手工输入法
w<-c(a,b,c,d)     # 数值

c("李四","张三")√  #字符
c("李四","张三")× ## 需要用英文逗号



  • 序列天生法——:或seq
#seq方法
w<-seq(from,to,by)    # by 步长
w2<-seq(from,to,length)    #length 序列长度
 x<-seq(from=-5,to=5,length=1000)




  • 重复天生法——rep
#重复天生法
rep(x,times)  #times 指定x的循环次数
rep(x,each)  #each 指定x其中的循环次数

向量的获取



  • 位置索引法——中括号内写上目标元素的下标
#索引
x<-c(1,4,6,9)
x[3]

#实例:取出大于5的元素
index<-which(x>5)
x[index]



  • bool索引法——方括号内为布尔值
x>5
x[x>5]

向量的数据类型转换

函数

含义

is.integer

判断向量的元素是否为整数型

is.numeric

判断向量的元素是否为实数型

is.character

判断向量的元素是否为字符型

is.Date

判断向量的元素是否为日期型

as.integer

将向量元素强制转换为整数型

as.numeric

将向量元素强制转换为实数型

as.character

将向量元素强制转换为字符型

as.Date

将向量元素强制转换为日期型

#实例 日期转换

%m 数字月份 01-12
%d 数字日期 01-31
%y 数字年份后两位 01-99#  1969-2068
Sys.times() #返回当前时间
Sys.Date() # 返回当前日期

特殊值

特殊值的表现
含义
判断
NA
缺失值
is.na
NULL
空值
is.null
NaN
不确定值
is.nan
Inf
无穷值
is.inf
向量的因子化转换

factor(x=character(),levels,labels=levels,exclude=NA,ordered=is.ordered(x))

常用数学函数

四则运算
符号
意义
+

-

*

/

^
乘方
%/%
取商
%%
取余
函数
意义
abs(x)
绝对值或者模
sqrt(x)
开方
exp(x)
指数
log(x) , log10(x) , log(x,n)
对数
sin(x),cos(x),tan(x)
三角函数(正弦、余弦、正切)
asin(x), acos(x),atan(x)
反三角函数
sinh(x),cosh(x),tanh(x)
双曲函数
asinh(x),acosh(x),atanh(x)
反双曲函数
facrorial(x)
阶乘x!
choose(n,k)
二项系数(n,k) n!/[k!(n-k)!]
gamma(x)
Gamma 函数
floor(x)
向下取整,<x 最大整数
ceiling(x)
向上取整,>x 最小整数
trunc(x)
靠近0取整,trunc(1.5)=1,trunc(-1.5)=-1,
round(x)
四舍五入
5.矩阵

矩阵的构造

通常意义上,矩阵紧张是指二维矩阵,由列和行两个维度构成。


  • matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)
#data 指定一个用于构造矩阵的一维向量;
nrow ncol分别指定行列数;
byrow:bool类型的参数,指在矩阵构造过程中,元素是否按照行风格添补,默认为FALSE;
dimnames设置行列名称

matrix(c(1,2,3,4),2,2)
matrix(c(1,2,3,4),2,2,byrow = TRUE,dimnames=list(c('A','B'),c('first','second')))



  • as.matrix(x,rownames.force=NA)
x:指定一个数据框,并将其强制转换为矩阵;
rownames.force:bool类型的参数,将x强制转换为矩阵后,矩阵是否包罗字符型的列名称,默认为NA,表现矩阵列名称与数据框变量名称一致;
矩阵的索引

位置索引
mat4<-matrix(1:24,ncol=4)
mat4
mat4[3,]
mat4[,2]
mat4[3,2]
mat4[2:5,2:3]
#取出奇数行偶数列的数据
mat4[seq(1,nrow(mat4),by=2),seq(2,ncol(mat4),by=2)]
基于矩阵运算的常用函数



  • t() #矩阵的转置
  • ginv()  #矩阵的逆
  • solve(a,b)  #求解方程ax=b,默认b为单位向量
  •  t(A) %*% B  #矩阵内积     crossprod(A, B)#矩阵内积




  • x %o% y #矩阵外积
outer(x, y)#矩阵外积 得到数组
x <- matrix(c(1,2,3,4,5,6),2,3);

y <- matrix(c(1,2,3,1,2,3),2,3);

z <- outer(x,y);

class(z);

z



6.数据框

构造数据框

不管是向量照旧矩阵,它们的元素都是同质的。
数据框的构造有两种途径,一种是使用data.frame函数手动创建或者使用as.data.frame天生。


  • data.frame(..., row.names = NULL, check.rows = FALSE,
           check.names = TRUE, fix.empty.names = TRUE,
           stringsAsFactors = default.stringsAsFactors())
...:指定多个长度相称的向量,用于构造数据框;
row.names:指定数据框的行名称,默认为1到n的整数;
check.rows:bool类型的参数,是否查抄行名称row.names与数据框的行数一致,默认为FALSE;
check.names:bool类型的参数,是否查抄数据框列名称的公道性和重复性,默认为TRUE;
fix.empty.names:bool类型的参数,如果数据框没有列名称,是否将其修正为V1、V2……,默认为TRUE;
stringsAsFactors:bool类型的参数,是否将字符串向量强制转换为因子型向量,默认为TRUE;

as.data.frame(x, row.names = NULL)
x:指定待转换为数据框的对象,可以是列表,也可以是矩阵;



  • # 手工构造门生信息的向量
id <- 1:11;
name <- c('白月初','王富贵','涂山苏苏','梵云飞','涂山雅雅','涂山容容','王权富贵','东方淮竹','月初','王权霸业','厉雪扬');
birthday <- c('1989/7/16','1990/3/12','1992/8/15','1991/9/19',
           '1993/4/17','1987/6/13','1994/4/21','1990/3/7',
           '1990/12/3','1989/8/18','1993/7/19');
gender <- c('男','男','女','男','女','女','男','男','男','男','女');
height <- c(167,172,168,169,173,175,180,169,178,189,167);
weight <- c(65.3,70.2,55.8,70.4,68.9,67.4,74.7,70.5,77.8,85.6,53.8);

# 将向量组合为数据框
stu_info <- data.frame(id,name,birthday,gender,height,weight);

# 数据预览
View(stu_info)   # V 大写

常用函数

函数
含义
str
查看数据框的布局。包括行数、列数及变量的数据类型
summary
查看数据的统计信息
names
返回数据框的变量名
dim
返回数据框的行列数
nrow/ncol
仅返回数据框的行数/列数
class
返回某个对象所属的数据布局、数据类型
head/tail
预览数据的前/后N行
$
从数据框中提取某个元素
[ ]
索引
subset
提取子集
transform
基于数据框衍生新变量
rbind/cbind
多个矩阵或数据框之间的行归并与列归并
#从门生信息表中筛选出身高不低于170的男生
subset(x=stu_info,subset=gender=='男'&height>=170)
7.列表

列表雷同于一个大熔炉,可以存储任意一种数据对象,列表的索引有3种形式,分别是单中括号、双中括号以及美元符号。
# 创建组成列表元素的对象
constant <- 27
vector <- c('本科','本科','硕士','本科','博士')
mat <- matrix(data = 1:9, ncol = 3)
df <- data.frame(id = 1:5, age = c(23,25,28,25,26),
                 gender = c('男','男','女','女','女'),
                 income = c(12500,8500,13000,15000,9000))
# 构造列表
list_object <- list(A = constant, vector, C = mat, D = df)
# 返回列表
list_object

View(list_object)

8.控制流语句及自定义函数
控制流语句

if(条件)
{执行A}
  else
{执行B}
For(i in )
{执行}
while(条件)
{执行}
自定义函数

func_name<-function(parameters)
{ func_expression
    return(result)
}
# 心形函数
func_heart <- function(r,theta)
{a <- 2*r*(sin(theta)-0.5*sin(2*theta))
  b <- 2*r*(cos(theta)-0.5*cos(2*theta))
  out <- list(a,b)
  return(out)
}
9.lapply族函数
tapply函数的使用:用于向量的分组统计。
tapply(x,INDEX,FUN=NULL,...,simplify=TRUE)
res2=tapply(X=iris$Sepal.Width,INDEX=iris$Species,FUN=summary)
res2
 apply函数用于矩阵轴的统计。
apply(X,MARGIN,FUN,...)
#MARGIN如果为1,就表现对矩阵的每一行进行统计盘算,如果为2,就表现对每一列做统计运算。
lapply和Sapply函数
Lapply 函数用于对向量或者列表元素的盘算,Sapply函数
是Lapply 函数升级。





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莫张周刘王

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表