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

  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

在这里插入图片描述

#使用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
  • 产生随机数据:

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

使用对象:

  • 向量有两个参数:类型,长度。
    不同类型有各自的缺省值,比如:逻辑型默认是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)


发布了109 篇原创文章 · 获赞 30 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43448491/article/details/104047346