美文网首页
R | 基本数据类型

R | 基本数据类型

作者: 尘世中一个迷途小书僮 | 来源:发表于2019-05-03 18:26 被阅读0次
各种数据类型

目前常用的数据类型有 vector, list, matrix, data.frame,以下只选取个人较为常用的类型展开描述。

Vector

Vecror是一种一维变量,只能存放一种类型的数据。不同类型的数据有优先级,通常chr型优先级大于int型。

Vector创建

> x <- c(1,2,3) 
> x
[1] 1 2 3

> x <- 1:10
> x
 [1]  1  2  3  4  5  6  7  8  9 10 

> x <- c(1,'a') #其中含有字符串时,所有变量都会转变成字符
> x
[1] "1" "a"

Vector 索引

vector的索引是从1开始的,且无办法反向索引,所以如果想要取变量的最后一个元素只能通过如此 x[length(x)] 获取。

> x <- 1:10
> x[1]
[1] 1
> x[-1]  #符号表示不取索引位的元素
[1]  2  3  4  5  6  7  8  9 10
> x[length(x)]
[1] 10

但是当要截取一个字符串变量的其中几个字母时,就不能用[]的方法进行,而要改用 substring()函数。

> a <- "apple"
> a[1]
[1] "apple"
> a[2]
[1] NA
> substring(a, 2)
[1] "pple"
> substring(a, 2, 3)
[1] "pp"

Matrix

Matrix 为二维数组,但也是只能保存一种类型的数据。

> x <- matrix(1:10, 2, 5)  #matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
> x
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    3    5    7    9
[2,]    2    4    6    8   10
> x[1,3] #取x行y列的元素
[1] 5

与matrix相关的几个函数

matrix() creates a matrix from the given set of values.

as.matrix() attempts to turn its argument into a matrix.

is.matrix() tests if its argument is a (strict) matrix.

data.frame

data.frame类比来说就像excel一样,既可以保存数字,又可以保存字符。

> name <- c("A", "B", "C")
> score <- c(4, 7, 9)
> a <- data.frame(name, score)
> a
  name score
1    A     4
2    B     7
3    C     9

data.frame 的索引

data.frame的索引多种方法: x[i, j], x$ ,或者通过逻辑值索引...

> a[,2] 
[1] 4 7 9

> a$score
[1] 4 7 9

>  a[a$score >5,]
  name score
2    B     7
3    C     9

或是通过grep()函数寻找特定的元素,类似于excel的“ctrl + F”。

grep(pattern, x, ignore.case = FALSE, perl = FALSE, value = FALSE,
     fixed = FALSE, useBytes = FALSE, invert = FALSE)
> grep('A',a$name)
[1] 1
> index1 <- grep('A', a[,1])
> a[index1,]
  name score
1    A     4

属性

一般而言对象可以包含以下的属性:class, dim, name, level等等。属性可以将与对象相关的信息以一种便捷的形式存起来并附加给该对象。

以下是几个访问对象属性的函数

> class(a) #查询数据的类
[1] "data.frame"

> typeof(a) #查询数据的类型
[1] "list"

> str(a) #查询数据的结构
'data.frame':   3 obs. of  2 variables:
 $ name : Factor w/ 3 levels "A","B","C": 1 2 3
 $ score: num  4 7 9
#a中的变量name包含了三个levels:A,B,C
> a$name
[1] A B C
Levels: A B C

> is.data.frame(a) #判断数据的类
[1] TRUE

> as.data.frame(a) #转变数据的类
  name score
1    A     4
2    B     7
3    C     9

最后,再来两张在《R语言入门与实践》看到的有意思的图作为总结。

完。

相关文章

  • R语言mode() str() class()辨析

    1、mode()会输出一个R对象的基本数据类型(模式) R可以处理的数据类型(types)(也叫模式(modes)...

  • redis基本知识学习总结

    基本数据类型 string hash list set zset 数据迁移方法 move(基本废除) dump+r...

  • R语言之基础

    一:R语言之基本数据结构 1. 向量 向量是 R 语言中最基本的数据类型,在 R 中没有单独的标量(例如 1 本质...

  • 【02】数据类型、导入和输出

    一、基本的数据类型 Python的数据类型与R语言的数据类型存在着一些差异。通常来说,Python常用的数据类型有...

  • R | 基本数据类型

    目前常用的数据类型有 vector, list, matrix, data.frame,以下只选取个人较为常用的类...

  • R语言基础--数据类型-总结

    R语言基础--数据类型-总结 1、R语言基础--数据类型之向量 2、R语言基础--数据类型之因子 3、R语言基础-...

  • R语言中的向量和标量

    R语言中最基本的数据类型是向量,与C语言家族不同,R语言中,单个数据(标量)没有单独的数据类型,它只是向量的一种特...

  • R语言数据类型

    数据类型变量不会声明为某种数据类型。 变量分配有R对象,R对象的数据类型变为变量的数据类型常用R对象类型矢量列表矩...

  • R--基本数据类型

    向量 cells<-c(1:4)rnames <- c("row1","row2")cnames<- c("col...

  • R-基本数据类型

    常见的数据结构 向量 c() # 一维 矩阵 matrix() # 二维 数组 array() # 多维 因子fa...

网友评论

      本文标题:R | 基本数据类型

      本文链接:https://www.haomeiwen.com/subject/dvjznqtx.html