R是用于统计分析、绘图的语言和操作环境。R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。
R 是统计领域广泛使用的诞生于 1980年左右的 S 语言的一个分支。 S的主要设计者John M. Chambers 因为S语言方面的工作获得了1998年 ACM 软件系统奖(ACM Sofare Systems Award)。
R可以在多种平台下编译和运行,包括UNIX (也包括FreeBSD和Linux)、Windows和MacOS。
该语言的语法表面上类似 C,但在语义上是函数设计语言的(functional programming language)的变种并且和Lisp 以及 APL有很强的兼容性。特别的是,它允许在“语言上计算”(puting on the language)。这使得它可以把表达式作为函数的输入参数,而这种做法对统计模拟和绘图非常有用。
官方网站::r-project./
R语言为什么叫R语言您好,R语言的命名是根据该软件的开发者来的,R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman 开发,所以取二人名字的首字母作为软件名
r语言中什么是向量什么是标量同样是一个数
x<-c(1) 这个x是向量
x<-1 这个x是标量
R语言代码问题,什么是jitter,什么是runif()fourspd2012.jittered 是变量名。
runif (random samples from uniform distribution), runif(242,min=-0.3,max=0.3) 从-0.3 到0.3 随机产生242个值
R语言是什么?R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
R语言是什么鬼
R是用于统计分析、绘图的语言和操作环境。
R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具
R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX,Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R还有以下特点:
1.R是自由软件。这意味着它是完全免费,开放源代码的。可以在它的网站及其镜像中下载任何有关的安装程序、源代码、程序包及其源代码、文档资料。标准的安装文件身自身就带有许多模块和内嵌统计函数,安装好后可以直接实现许多常用的统计功能。[2]
2.R是一种可编程的语言。作为一个开放的统计编程环境,语法通俗易懂,很容易学会和掌握语言的语法。而且学会之后,我们可以编制自己的函数来扩展现有的语言。这也就是为什么它的更新速度比一般统计软件,如,SPSS,SAS等快得多。大多数最新的统计方法和技术都可以在R中直接得到。[2]
3. 所有R的函数和数据集是保存在程序包里面的。只有当一个包被载入时,它的内容才可以被访问。一些常用、基本的程序包已经被收入了标准安装文件中,随着新的统计分析方法的出现,标准安装文件中所包含的程序包也随着版本的更新而不断变化。在另外版安装文件中,已经包含的程序包有:base一R的基础模块、mle一极大似然估计模块、ts一时间序列分析模块、mva一多元统计分析模块、survival一生存分析模块等等.[2]
4.R具有很强的互动性。除了图形输出是在另外的窗口处,它的输入输出窗口都是在同一个窗口进行的,输入语法中如果出现错误会马上在窗口口中得到提示,对以前输入过的命令有记忆功能,可以随时再现、编辑修改以满足用户的需要。输出的图形可以直接保存为JPG,BMP,PNG等图片格式,还可以直接保存为PDF文件。另外,和其他编程语言和数据库之间有很好的接口。[2]
5.如果加入R的帮助邮件列表一,每天都可能会收到几十份关于R的邮件资讯。可以和全球一流的统计计算方面的专家讨论各种问题,可以说是全世界最大、最前沿的统计学家思维的聚集地.[2]
R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。 R的语法是来自Scheme。R的使用与S-PLUS有很多类似之处,这两种语言有一定的兼容性。S-PLUS的使用手册,只要稍加修改就可作为R的使用手册。所以有人说:R,是S-PLUS的一个“克隆”。
但是请不要忘了:R是免费的(R is free)。
R语言报错,什么是下标出界下标出界就是比如说你有一个100长度的数组,但你却用了101的小标去引用数组,这样就会出现出界
R语言大神们学习R语言初期用的什么书《 R语言实战》《R语言初学者指南》《R语言编程艺术》。你也可以去亚马逊上搜索,看看别人的评价来决定你买哪一本。关键看你学习R语言有没有统计和数据挖掘的基础吧。
R语言“seq函数”是什么?在一个文档中定位到第一个空行,读取其后的所有文本 get.msg <- function(path) { con <- file(path, open = "rt", encoding = "latin1") text <- readLines(con) # The message always begins after the first full line break msg <-... 文档定位第空行读取其所文本
get.msg <- function(path)
{
con <- file(path, open = "rt", encoding = "latin1")
text <- readLines(con)
# The message always begins after the first full line break
msg <- text[seq(which(text == "")[1]+1, length(text), 1)]
close(con)
return(paste(msg, collapse = "\n"))
}
报错:
Error in seq.default(which(text == "")[1]+1, length(text), 1) :
'from' cannot be NA, NaN or infinite 展开 示例文档:
From [email protected] Thu Aug 22 13:17:22 2002
Return-Path: [email protected]>
Delivered-To: [email protected].
Received: from localhost (localhost [127.0.0.1])
by phobos.labs.spamassassin.taint. (Postfix) with ESMTP id 136B943C32
for <zzzz@localhost>Thu, 22 Aug 2002 08:17:21 -0400 (EDT)
<!DOCTYPE HTML PUBLIC "-W3CDTD HTML 4.0 TransitionalEN">
<HTML><HEAD>
<META content=3D"text/charset=3Dwindows-1252" -equiv=3DContent-T=
ype>
R语言中的几种数据结构一 R中对象的5种基本类型
字符(character)
整数 (integer)
复数(complex)
逻辑(logical:True/False)
数值(numeric:real numbers)
查看对象类型的命令:class(x)
二 R语言中有如下几种数据结构:
向量 vector() 组内元素必须类型一致,否则将会被强制转换。
(1) 创建向量的三种方式:
<span style="font-size:18px">x <- vector("numeric", length = 10)
x <- 1:4
x <- c("a",12,TRUE)</span>
(2) 强制转换的几个函数:
as.numeric(x) / as.character(x) / as.logical(x)
矩阵 matrix()一列一列的填充元素
按行合并:rbind()按列合并:cbind()
数组 array() 可以有多个维度
列表 list() 可以包含不同类型的元素
因子 factor()
(1) 分类数据/有序 vs. 无序
(2) 整数向量+标签(label)(优于整数向量)
Male/Female vs. 1/2
常用于lm(),glm()
(3) levels设置基线水平
table() 查看因子信息unclass() 去除因子属性日期
x <- Sys.Date() 得到系统当前日期
julian(x) x距离1970-01-01的天数
时间 POSIXct / POSIXlt
POSIXct:整数,常用于存入数据框 as.POSIXct()
POSIXlt:列表,还包含星期、年月日等信息。as.POSIXlt()
strptime(x, format = "...") 将一般格式转化为时间格式
R语言快速入门:数据结构+生成数据+数据引用+读取外部数据查看完整文档可至百度网盘:
链接: https://pan.baidu.com/s/1cEdmpO5idfxx044TpqVBuA
提取码: bi3t
R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。常被用于统计学、计量分析等领域。接下来讲一下我个人认为的R入门知识。
目录1 数据结构
1.1 向量
1.2 矩阵
1.3 数据框
2 生成数据
2.1 c() 连接单个数据
2.2 ":" 生成1/-1等差向量
2.3 seq() 生成等距向量
2.4 rep() 生成重复数据
3 数据引用
3.1 引用行/引用列
3.2 引用单个元素
3.3 引用子矩阵
3.4 变量名引用
4 读取外部数据(表)
4.1 更改工作目录
4.2 read.table
4.3 read.csv
正文 1 数据结构本节主要讲向量、矩阵、数据框三种数据结构(入门必须学)
1.1 向量
用于存储数值型、字符型或逻辑型数据的一维数组,常用"c()"创建。例如:
> c(1,2,8)#生成包含1,2,8的一维数组(向量)[1] 1 2 8
1.2 矩阵
二维数组具有行列的概念
#矩阵用法
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,dimnames = NULL) #表示生成1行,1列的一个矩阵,其中仅仅包含一个元素“NA” #---示例---#> matrix(c(1,2,3, 11,12,13), nrow = 2, ncol = 3, byrow = TRUE, dimnames = list(c("row1", "row2"), c("C.1", "C.2", "C.3")))
C.1 C.2 C.3
row1 1 2 3
row2 11 12 13
#nrow = 2和ncol = 3 定义2x3的2行3列矩阵
#byrow = TRUE 是控制矩阵中的数据c(1,2,3, 11,12,13)按照行的顺序排列,默认按照列排列
#dimnames = list(c("row1", "row2"), c("C.1", "C.2", "C.3")) 定义矩阵行名和列名
1.3 数据框
主要用于向量/矩阵合并,可以将不通类型的以向量以及矩阵,按照一定结构存储在数据框中。
> x <- c(11:20) #其中" <- "是赋值的意思,将向量c(11:20)赋值给对象x> y <- c(1:10)
> data.frame(xf = x, yf = x) #将向量x和y合并存储到数据框中,并重命名为xf和yf
xf yf
1 11 11
2 12 12
3 13 13
4 14 14
5 15 15
6 16 16
7 17 17
8 18 18
9 19 19
10 20 20
数组与矩阵类似,但其维度大于2.由于R入门基本接触不到3维以上数组的概念,目前暂不展开,等入门后在反过来看。
2 生成数据本节主要讲“c()”、":"、seq、rep等四种数据生成的内容(入门必须学)
2.1 “c” 连接单个数据
> c(1,2,8)#生成包含1,2,8的向量2.2 “:“ 生成1/-1等差向量
> 1.1:10[1] 1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1
> 1:10
[1] 1 2 3 4 5 6 7 8 9 10
> 10:1 #如x=1:10(递减,如y=10:1)
[1] 10 9 8 7 6 5 4 3 2 1
2.3 seq 生成等距向量
①seq(起点,终点,步长)
②seq(length=9, from=1, to=5)
> seq(1,10,2)[1] 1 3 5 7 9
> seq(length=5,1,10)
[1] 1.00 3.25 5.50 7.75 10.00
#seq(x)相当于1:length(x);length(x)为0时,返回integer(0)
> seq(10)
[1] 1 2 3 4 5 6 7 8 9 10
> seq(c())
integer(0)
2.4 rep(x,n) 重复
将x重复n次,可使用each限定为依次重复形式
rep(1:3,3)rep(1:3,each=3)
#> rep(1:3,3)
#[1] 1 2 3 1 2 3 1 2 3
#> rep(1:3,each = 3)
#[1] 1 1 1 2 2 2 3 3 3
额外补充:R语言|第2讲:生成数据
3 数据引用(以矩阵为例)数据引用必须懂“对指定维度数据的引用”(以二维矩阵为例)
3.1 行引用/列引用
例如:引用第一行数据,引用第一列数据,引用第一行第一列的数据。
> data(iris) #鸢尾花数据集> dim(iris) #读取iris数据集的维度数值,以“行数 列数 ”形式展示[1] 150 5 #说明iris数据集是150 x 5的二维数组3.2 行列值引用:数据集[行值,列值]
如行值或列值仅1个数字,表示仅引用该行或列的数据
> iris[1,] #引用第1行数据Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
> head(iris[,1],5) #引用第1列的数据,其中因数据过长,使用head()函数取前5个数字
[1] 5.1 4.9 4.7 4.6 5.0
3.3 引用子矩阵
如行值或列值为组合数据,则表示引用组合行列交叉位置的数据
> iris[1:5,1:3]Sepal.Length Sepal.Width Petal.Length
1 5.1 3.5 1.4
2 4.9 3.0 1.4
3 4.7 3.2 1.3
4 4.6 3.1 1.5
5 5.0 3.6 1.4
3.4 变量名引用
(多用于二维数组中):数据集$变量名
> head(iris$Petal.Length,5)[1] 1.4 1.4 1.3 1.5 1.4 4 读取外部数据(以.csv表为例)
本节主要讲如何读取外部数据(表)(以.csv表为例)
4.1 设置工作目录
R语言中数据的输入需要设置数据读取的路径,一般将数据文件放到工作目录下,这样直接就可以通过read.table等读取数据文档(不许要设置路径)。
setwd("E:/") #设置当前工作目录为"E:/"
getwd() #读取当前工作空间的工作目录(文件读取保存路径)
> getwd() #读取当前工作空间的工作目录(文件读取保存路径)[1] "C:/Users/ysl/Documents"
> setwd("E:/") #设置当前工作目录为"E:/"
> getwd() #再次使用getwd()函数即可查看是否设置成功
[1] "E:/"
方法二:通过R-gui菜单栏设置(文件-改变工作目录)
4.2 read.table()
#读取带分隔符的文本文件。read.table()函数是R最基本函数之一,读取带分隔符的文本/表格文件。#Usage
read.table(file, header = FALSE, sep = "", quote = "\"'",
dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),
row.names, col.names, as.is = !stringsAsFactors,
na.strings = "NA", colClasses = NA, nrows = -1,
skip = 0, check.names = TRUE, fill = !blank.lines.skip,
strip.white = FALSE, blank.lines.skip = TRUE,
comment.char = "#",
allowEscapes = FALSE, flush = FALSE,
stringsAsFactors = default.stringsAsFactors(),
fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)
read.csv(file, header = TRUE, sep = ",", quote = "\"",
dec = ".", fill = TRUE, comment.char = "", ...)
read.csv2(file, header = TRUE, sep = "", quote = "\"",
dec = ",", fill = TRUE, comment.char = "", ...)
read.delim(file, header = TRUE, sep = "\t", quote = "\"",
dec = ".", fill = TRUE, comment.char = "", ...)
read.delim2(file, header = TRUE, sep = "\t", quote = "\"",
dec = ",", fill = TRUE, comment.char = "", ...)
常用参数的说明如下:
(1)file:file是一个带分隔符的ASCII文本文件。①绝对路径或者相对路径。一定要注意,在R语言中\是转义符,所以路径分隔符需要写成"\\"或者“/”。所以写成“C:\\myfile\\myfile.txt”或者“C:/myfile/myfile.txt”即可。②使用file.choose(),弹出对话框,自动选择文件位置。例如:read.table(file.choose(),...)。
(2)header:一个表示文件是否在第一行包含了变量的逻辑型变量。如果header设置为TRUE,则要求第一行要比数据列的数量少一列。
(3)sep分开数据的分隔符。默认sep=""。read.table()函数可以将1个或多个空格、tab制表符、换行符或回车符作为分隔符。常见空白分隔符有:空格,制表符,换行符
sep=” ”;sep = “\t”;sep = “\n”
(4)stringsAsFactors 逻辑值,标记字符向量是否需要转化为因子,默认是TRUE。stringsAsFactors = F意味着,“在读入数据时,遇到字符串之后,不将其转换为factors,仍然保留为字符串格式”。
(5)encoding 设定输入字符串的编码方式。
#读取txt文档
> df<- read.table("data.txt")> df
V1 V2
1 x y
2 1 2
3 3 4
4 5 6
> df <- read.table("data.txt",header = T)
> df
x y
1 1 2
2 3 4
3 5 6
#样式1:直接读取数据
> df <- read.table("data.csv") #直接读取数据> head(df)
V1
1 ID,Sepal.Length,Sepal.Width,Petal.Length,Petal.Width,Species
2 1,5.1,3.5,1.4,0.2,setosa
3 2,4.9,3,1.4,0.2,setosa
4 3,4.7,3.2,1.3,0.2,setosa
5 4,4.6,3.1,1.5,0.2,setosa
6 5,5,3.6,1.4,0.2,setosa
#样式2:读数+首行表头
> df <- read.table("data.csv",header = T) #读数+首行表头> head(df)
ID.Sepal.Length.Sepal.Width.Petal.Length.Petal.Width.Species
1 1,5.1,3.5,1.4,0.2,setosa
2 2,4.9,3,1.4,0.2,setosa
3 3,4.7,3.2,1.3,0.2,setosa
4 4,4.6,3.1,1.5,0.2,setosa
5 5,5,3.6,1.4,0.2,setosa
6 6,5.4,3.9,1.7,0.4,setosa
#样式3:读数+首行表头+","逗号分割
> df <- read.table("data.csv",header = T,sep=",")#读数+首行表头+","逗号分割
> head(df)
ID Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 1 5.1 3.5 1.4 0.2 setosa
2 2 4.9 3.0 1.4 0.2 setosa
3 3 4.7 3.2 1.3 0.2 setosa
4 4 4.6 3.1 1.5 0.2 setosa
5 5 5.0 3.6 1.4 0.2 setosa
6 6 5.4 3.9 1.7 0.4 setosa
> summary(df)
ID Sepal.Length Sepal.Width Petal.Length
Min. : 1.00 Min. :4.300 Min. :2.000 Min. :1.000
1st Qu.: 38.25 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600
Median : 75.50 Median :5.800 Median :3.000 Median :4.350
Mean : 75.50 Mean :5.843 Mean :3.057 Mean :3.758
3rd Qu.:112.75 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100
Max. :150.00 Max. :7.900 Max. :4.400 Max. :6.900
Petal.Width Species
Min. :0.100 setosa :50
1st Qu.:0.300 versicolor:50
Median :1.300 virginica :50
Mean :1.199
3rd Qu.:1.800
Max. :2.500
#样式4:读数+首行表头+","逗号分割+字符转因子factor
> df <- read.table("data.csv",header = T,sep=",",stringsAsFactor = T)##读数+首行表头+","逗号分割+字符转因子factor
> head(df)
ID Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 1 5.1 3.5 1.4 0.2 setosa
2 2 4.9 3.0 1.4 0.2 setosa
3 3 4.7 3.2 1.3 0.2 setosa
4 4 4.6 3.1 1.5 0.2 setosa
5 5 5.0 3.6 1.4 0.2 setosa
6 6 5.4 3.9 1.7 0.4 setosa
#请注意species结果与样式3中结果的差异
> summary(df)
ID Sepal.Length Sepal.Width Petal.Length
Min. : 1.00 Min. :4.300 Min. :2.000 Min. :1.000
1st Qu.: 38.25 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600
Median : 75.50 Median :5.800 Median :3.000 Median :4.350
Mean : 75.50 Mean :5.843 Mean :3.057 Mean :3.758
3rd Qu.:112.75 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100
Max. :150.00 Max. :7.900 Max. :4.400 Max. :6.900
Petal.Width Species
Min. :0.100 setosa :50
1st Qu.:0.300 versicolor:50
Median :1.300 virginica :50
Mean :1.199
3rd Qu.:1.800
Max. :2.500
4.3 read.csv()
#读取.csv格式数据,read.table的一种特定应用。read.csv() 读取逗号分割数据文件,read.table()的一种特定应用。默认逗号分割,header=T,stringsAsFactor = Tdf <- read.csv("data.csv") #等价与下df <- read.table("data.csv",header = T,sep=",",stringsAsFactor = T)df <- read.table("data.csv",header = T,sep=",",stringsAsFactor = T)#第一行和第二行等价
read.csv(file, header = TRUE, sep = ",", quote = "\"",
dec = ".", fill = TRUE, comment.char = "", ...)
#实例
> df <- read.csv("data.csv")
#相当于df <- read.table("data.csv",header = T,sep=",",stringsAsFactor = T)
> head(df)
ID Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 1 5.1 3.5 1.4 0.2 setosa
2 2 4.9 3.0 1.4 0.2 setosa
3 3 4.7 3.2 1.3 0.2 setosa
4 4 4.6 3.1 1.5 0.2 setosa
5 5 5.0 3.6 1.4 0.2 setosa
6 6 5.4 3.9 1.7 0.4 setosa