R语言学习笔记(二)-变量与数据类型

Python& AI 2018-07-26 445 次浏览 Comments Off on R语言学习笔记(二)-变量与数据类型

2.1 数据类型
在编程中,需要使用各种变量来存储数据。在一般的编程语言如c中,先要声明一个变量的类型,然后系统会在内存中分配一个位置,用于存储该变量的数据。
但是在R语言中,一个R对象会被分配给该变量,变量所分配的R对象也可以改变。
数据类型:
Logical(逻辑型) TRUE, FALSE
Numeric(数字) 12.3,5,999
Integer(整型) 2L,34L,0L
Complex(复合型) 3 + 2i
Character(字符) 'a' , '"good", "TRUE", '23.4'
Raw(原型) "Hello" 被存储为 48 65 6c 6c 6f

R对象的数据类型变为变量的数据类型。尽管有很多类型的R对象,但经常使用的是:
• 矢量
• 列表
• 矩阵
• 数组
• 因子
• 数据帧
这些对象中最简单的是向量对象,并且这些原子向量有六种数据类型,也称为六类向量。 其他R对象建立在原子向量之上。

2.1.1 Vectors 向量
一个包含了多个维度数据类型的向量
创建向量时,使用c()函数,这意味着将元素组合成一个向量。

# Create a vector.
apple <- c('red','green',"yellow")
print(apple)

# Get the class of the vector.
print(class(apple))

当我们执行上面的代码,它产生以下结果

[1] "red" "green" "yellow"
[1] "character"

(class()函数用于获取变量的类型,当向量的元素均为数字时,返回的数据类型为”numeric”,只要有一个其他字符作为元素出现,该向量的类型为"character")

2.1.2 Lists 列表
列表是一个R对象,它可以在其中包含许多不同类型的元素,如向量,函数甚至其中的另一个列表。

# Create a list.
list1 <- list(c(2,5,3),21.3,sin)

# Print the list.
print(list1)

当我们执行上面的代码,它产生以下结果

[[1]]
[1] 2 5 3

[[2]]
[1] 21.3

[[3]]
function (x) .Primitive("sin")

2.1.3 Matrices 矩阵

矩阵是二维矩形数据集。 它可以使用矩阵函数的向量输入创建。

# Create a matrix.
M = matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = TRUE)
print(M)

当我们执行上面的代码,它产生以下结果

[,1][,2][,3]
[1,] "a" "a" "b"
[2,] "c" "b" "a"

nrow 行数, ncol列数, byrow 是否按输入顺序分排安放

 

2.1.4 Arrays 数组
虽然矩阵被限制为二维,但阵列可以具有任何数量的维度。 数组函数使用一个dim属性创建所需的维数。 在下面的例子中,我们创建了一个包含两个元素的数组,每个元素为3x3个矩阵。

# Create an array.
a <- array(c('green','yellow'),dim = c(3,3,2)) print(a) 当我们执行上面的代码,它产生以下结果

, , 1

      [,1]   [,2]     [,3]

[1,] "green" "yellow" "green"

[2,] "yellow" "green" "yellow"

[3,] "green" "yellow" "green"

, , 2

     [,1]     [,2]    [,3]

[1,] "yellow" "green" "yellow"

[2,] "green" "yellow" "green"

[3,] "yellow" "green" "yellow"

在创建数组时,若提供的元素数量与矩阵的行数相同,则每一行都会由同一个元素组成

a <- array(c('green','yellow','red'),dim = c(3,4,2))

print(a)
      [,1]    [,2]     [,3]     [,4]

[1,] "green"  "green"  "green"  "green"

[2,] "yellow" "yellow" "yellow" "yellow"

[3,] "red"    "red"    "red"    "red"

2.1.5 Factors 因子
因子是使用向量创建的r对象。 它将向量与向量中元素的不同值一起存储为标签。 标签总是字符,不管它在输入向量中是数字还是字符或布尔等。 它们在统计建模中非常有用。
使用factor()函数创建因子。nlevels函数给出级别计数。

# Create a vector.
apple_colors <- c('green','green','yellow','red','red','red','green')

# Create a factor object.
factor_apple <- factor(apple_colors)

# Print the factor.
print(factor_apple)
print(nlevels(factor_apple))

当我们执行上面的代码,它产生以下结果

[1] green green yellow red red red yellow green
Levels: green red yellow
#先打印出目标向量,后打印标签

# applying the nlevels function we can know the number of distinct values
[1] 3

可用于统计向量中不同元素的数量

2.1.6 Data Frames 数据帧
数据帧是表格数据对象。与数据帧中的矩阵不同,每列可以包含不同的数据模式。 第一列可以是数字,而第二列可以是字符,第三列可以是逻辑的。 它是等长度的向量的列表。
使用data.frame()函数创建数据帧。

# Create the data frame.
BMI <- data.frame( gender = c("Male", "Male","Female"), height = c(152, 171.5, 165), weight = c(81,93, 78), Age = c(42,38,26) )

print(BMI)

当我们执行上面的代码,它产生以下结果

gender height  weight  Age

Male   152.0   81      42

Male   171.5   93      38

Female 165.0   78      26

2.2 变量

在R语言中,变量本身没有声明任何数据类型,而是获取分配给它的R - 对象的数据类型。 所以R称为动态类型语言,这意味着我们可以在程序中使用同一个变量时,一次又一次地更改变变量的数据类型。

2.2.1 变量的命名规则

1.变量中可以存在’.’ ’_’ 字母和数字

2.不可以数字和下划线开头

3.若起始字符为点,则点后不可接数字

2.2.2 变量赋值

可以通过等号、箭头符号->、<-赋值
使用print()或者cat()打印变量,cat可以组合多个变量一起打出
在使用cat时使用

cat ("var.3 is ", var.3 ,"
")

可将第一行尾的换行符一起打印出。从而实现换行。

2.2.3查找变量
要知道工作空间中当前可用的所有变量,使用ls()函数。 ls()函数也可以使用模式来匹配变量名。
ls()函数可以使用模式来匹配变量名。

# List the variables starting with the pattern "var".
print(ls(pattern = "var"))

当我们执行上面的代码,会显示匹配包含‘var’字串的变量
以点(.)开头的变量被隐藏,它们可以使用ls()函数的“all.names = TRUE”参数列出。

print(ls(all.name = TRUE))

2.2.4可以使用rm()函数删除变量。

下面我们删除变量var.3。 打印时,抛出变量错误的值。

rm(var.3)
print(var.3)

当我们执行上面的代码,它产生以下结果 -

[1] "var.3"
Error in print(var.3) : object 'var.3' not found

所有的变量可以通过使用rm()和ls()函数一起删除。

rm(list = ls())
print(ls())

当我们执行上面的代码,它产生以下结果 -

character(0)

微信扫一扫,分享到朋友圈

R语言学习笔记(二)-变量与数据类型
梓沨

站长 INTP,生物搬砖工