R语言学习笔记(1)——数据类型

本文介绍了R语言中的基本数据类型,包括向量、列表、矩阵、数组、因子和数据帧。向量是最基本的类型,分为逻辑、数字、整数、复数、字符和原型六种。列表可以存储不同类型元素,矩阵是一维数据的二维表示,数组则支持多维数据。因子用于存储分类数据,数据帧类似表格,允许不同列包含不同数据类型。了解这些基础知识对于R语言编程至关重要。
摘要由CSDN通过智能技术生成

数据类型

通常,在使用任何编程语言进行编程时,您需要使用各种变量来存储各种信息。 变量只是保留值的存储位置。 这意味着,当你创建一个变量,你必须在内存中保留一些空间来存储它们。
您可能想存储各种数据类型的信息,如字符,宽字符,整数,浮点,双浮点,布尔等。基于变量的数据类型,操作系统分配内存并决定什么可以存储在保留内存中。
R语言不同与C和Java,类似于MATLAB,变量不需要先声明为某种数据类型,可以直接对其进行赋值。变量分配有R对象,R对象的数据类型变为变量的数据类型。尽管有很多类型的R对象,但经常使用的是:矢量、列表、矩阵、数组、因子与数据帧。
这些对象中最简单的是向量对象,并且这些原子向量有六种数据类型,也称为六类向量。 其他R对象建立在原子向量之上。
六种类型为:
Logical(逻辑型):TRUE,FLASE(类似于C++中的bool类型)
Numeric(数字):1.2,5,999 etc
Integer(整型):2L,34L(每个整数后都有"L",这样的整数在内存中占32位,其中一位表示正负,最大可表示2^31 – 1。与之相对的是double类型,它在内存中占64位,可以表示小数,后面无“L”)
Complex(复合型):3+2i (即复数)
Character(字符):‘a’,“good”,“TRUE”,‘23.4’(单双引号无本质区别,但若需要输出中含有引号,需使用转义符,即在需输出的引号前加“\”)
Raw(原型)

v<- chatToRaw("Hello")
print(class(v))
#输出
#[1]"raw"

此时“Hello”被存储为48 65 6c 6c 6f(即二进制 ASCII码)
查看变量数据类型用函数class()
在R编程中,非常基本的数据类型是称为向量的R对象,其保存如上所示的不同类的元素。 请注意,在R中,类的数量不仅限于上述六种类型。 例如,我们可以使用许多原子向量并创建一个数组,其类将成为数组。

向量 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"

列表 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")

矩阵 Matrices

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

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

结果

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

可以发现运行注释内的代码输出不同于非注释内的代码,这是因为注释内的代码 byrow=FLASE 即此时是以列优先的次序转换为矩阵,而非注释内的代码 byrow=TRUE 则是以行优先的次序转换为矩阵。
若不设置此处,R中默认以列优先的次序转换为矩阵。

数组 Arrays

数组可以具有任何数量的维度,数组函数使用一个dim属性创建所需的维数。

# 创建一个包含两个元素的数组,每个元素为3x3个矩阵.
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"

因子 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    green 
Levels: green red yellow
#通过使用函数nlevels()可以知道不同值的个数
[1] 3

数据帧 Data Frames

数据帧是表格数据对象。 与数据帧中的矩阵不同,每列可以包含不同的数据模式。 第一列可以是数字,而第二列可以是字符,第三列可以是逻辑的。 它是等长度的向量的列表。与C++中的结构体类似。

# 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
1   Male  152.0     81  42
2   Male  171.5     93  38
3 Female  165.0     78  26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HanWLang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值