欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

R语言学习(4)--《R语言入门》

程序员文章站 2022-03-23 08:32:47
...
  1. 对象命名
    必须是字母开头,区分大小写,后面可以有点. 下划线_ 数字;
  2. 赋值
    使用<-或者->; 可以赋值的有:数值,一个算式,一个函数的结果
  3. 函数ls()用于显示所有在内存中的对象;函数rm()删除对象,
    删除对象x:rm(x)
    删除所有对象:rm(list = ls())
    找出含有字母m的对象,需要设定选项pattern,如:ls(pattern = "m")或者是简写ls(pat = "m")
    ls.str()会展示出内存中的所有对象的详细信息,这时会返回很多信息(太详细了),如果不需要这么详细,那么可以设定max.level选项(规定了对象信息的级别),具体地:
    ls.str(pat = "M", max.level = -1)

对象:

对象的属性:类型和长度。其中:

  • 类型:数值型,字符型,复数型和逻辑型,使用mode()函数可以看到。
  • 长度:对象中元素的个数,使用length()函数可以看到。

Inf-Inf表示正无穷和负无穷;
NaN表示非数字。

  1. 因子,是一个分类变量;
  2. 数组,是一个K维数据表;
  3. 矩阵,是一个二维数据表,数组和矩阵中的所有元素必须是同一类型的;
  4. 数据框,有一个或是几个向量和因子构成,必须是等长的,但可以是不同的数据类型;
  5. "ts"表示时间序列数据,包含额外属性,如频率和时间;
  6. 列表,可以包含任何类型的对象,包括列表。

读取数据文件:

读取文本文件(ASCII)中的数据,使用read.table () 或 scan 或 read.fwf,这些基本的数据文件。
区别:
函数read.table():创建一个数据框,读取表格形式的数据。

> mydata <- read.table("test.dat")
> mydata
     V1
1 a,b,c
2 3,2,3
> mydata <- read.table("test.dat", sep = ",")
> mydata
  V1 V2 V3
1  a  b  c
2  3  2  3
> 

注意:数据框中的每一个变量都将会被命名,如果没有规定名字,缺省值会被记为:V1,V2,…;
此外,还可以单独访问每个变量,如:mydata$V1,mydata$V2,…
或者mydata[“V1”],mydata[“V2”],…
或者mydata[,1], mydata[,2]
区别:第二种取出的结果是数据框,而第一种和第三种是向量。
scan()函数读取较为灵活,可以指定变量类型,还可以创建不同类型的对象,如果what被缺省,那么将创建一个数值型向量。

> mydata <- scan("test.dat" , what = list(""))
Read 2 records
> mydata
[[1]]
[1] "a,b,c" "3,2,3"
#如果用 mydata <- scan("test.dat" , what = list("", 0 , 0))
#表示读取三个变量,第一个是字符型变量,第二个和第三个是数值型变量

read.fwf函数可以用来读取文件种一些固定宽度的格式的数据,如:

> mydata <- read.fwf("test.dat", widths = c(1, 4, 3))
> mydata
  V1   V2  V3
1  A 1.50 1.2
2  B 1.55 1.3
3  C 1.60 1.4

存储数据:

  1. 将对象x写入文件中:
> x = matrix(1:9 , 3 , 3)
> x
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
> write(x , file = "test.dat" , append = TRUE)
  1. save.image()save(list = ls(all = TRUE) , file = ".RData")

生成数据:

#生成规则序列
> x <- 1:9
> x
[1] 1 2 3 4 5 6 7 8 9
> x <- 1:10-1
> x
 [1] 0 1 2 3 4 5 6 7 8 9
> seq(1 , 5 ,1)
[1] 1 2 3 4 5
> seq(length = 1 , from = 1, to = 5)
[1] 1
> seq(length = 5 , from = 1, to = 5)
[1] 1 2 3 4 5
> seq(length = 10 , from = 1, to = 5)
 [1] 1.000000 1.444444 1.888889 2.333333 2.777778
 [6] 3.222222 3.666667 4.111111 4.555556 5.000000
> c(1,23,3,4)
[1]  1 23  3  4
> #通过键盘输入
> x <- scan()
1: 1 2 3 4
5: 
Read 4 items
> x
[1] 1 2 3 4
> #使用rep函数创建所有元素相同的向量
> rep(2,5)
[1] 2 2 2 2 2
> #sequence()函数创建一系列连续的整数序列,每个序列都以给定的参数的数值结尾
> sequence(4:6)
 [1] 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6
> sequence(c(4,6))
 [1] 1 2 3 4 1 2 3 4 5 6
 #gl(k,n,length = , labels = c())--共k个水平,每个水平重复n遍,直到凑够length个为之,其中labels是每个水平的名称
>  gl(3,5, labels = c("a", "b" , "c"))
 [1] a a a a a b b b b b c c c c c
Levels: a b c
>  gl(3,5, labels = c("a", "b" , "c"), length = 20)
 [1] a a a a a b b b b b c c c c c a a a a a
Levels: a b c

R语言学习(4)--《R语言入门》

#使用expand.grid()创建数据框,完全搭配出各参数的各水平
> expand.grid(a = c(1,2) , b = c(10, 20) , sex = c("E", "F"))
  a  b sex
1 1 10   E
2 2 10   E
3 1 20   E
4 2 20   E
5 1 10   F
6 2 10   F
7 1 20   F
8 2 20   F
  • 产生随机数据:

R语言学习(4)--《R语言入门》
基本形式:rfunc(n,p1,p2,…)表示某分布func的随机数r,需要生成n个,决定该分布函数的的参数值为p1,p2,…
与之相同地,有密度函数(dfunc),累计概率密度函数,也就是分布函数(pfunc),分位数函数(qfunc(p,…)其中0<p<1)
最后两个函数序列可以用来求统计检验中的P值或临界值。
R语言学习(4)--《R语言入门》

使用对象:

  • 向量有两个参数:类型,长度。
    不同类型有各自的缺省值,比如:逻辑型默认是FALSE,字符型默认是“”,数值型默认是0.
> x = vector(mode = "logical" , length = 3)
> x
[1] FALSE FALSE FALSE
> x = vector(mode = "numeric" , length = 2)
> x
[1] 0 0
> x = vector(mode = "character" , length = 3)
> x
[1] "" "" ""
  • 因子,不仅包括分类变量本身,还包括变量不同的可能水平。
    格式:
    factor(x , levels = sort(unique(x), na.last = TRUE),labels =levels , exclude = NA,orderd = is.ordered(x))
    其中levels用来指定因子可能的水平,缺省值是向量x中的互异值;
    labels用来指定水平的名字;
    exclude表示从向量x中剔除的水平值;
    ordered 是一个逻辑性选项用来指定因子的水平是否有次序。

factor(1:3)
[1] 1 2 3
Levels: 1 2 3
factor(1:3 , levels = 1:5)
[1] 1 2 3
Levels: 1 2 3 4 5
factor(1:3 , labels = c(“a”,“D”,“C”))
[1] a D C
Levels: a D C
factor(1:5 , exclude = 4)
[1] 1 2 3 5
Levels: 1 2 3 5

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200120180254274.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNDQ4NDkx,size_16,color_FFFFFF,t_70)


相关标签: R语言 r语言