上一期文章
R语言学习(2)——Windows系统下安装和配置R的IDE(VSCode)
文章目录
R中变量的创建和删除
变量的创建
- 在 R 中,不必对变量进行声明或者显式地创建变量,只需要将值赋予一个名称,R 就会自动生成该名称的变量。赋值由赋值符号(<-)操作,它由一个小于号(<)和一个减号(-)构成,两个符号之间没有空格。
在VSCode中,可以使用快捷键alt+-直接实现赋值符号的输入,具体设置可以参考上一期文章。
下面是参考的示例:
# 将1赋值给变量名x
X <- 1
# 将2赋值给变量名y
y <- 2
使用ls()函数可以查看当前工作空间中所有对象的名称
ls() 函数输出的结果是一个字符串向量,其中向量的每个元素代表一个变量名。
ls()
# "x" "y"
当工作空间中没有已定义的变量时,ls()函数 会返回一个空向量
ls()
# character(0)
变量的删除
使用rm()函数可以删除工作空间中的变量
rm(x, y)
ls()
# character(0)
变量的命名规则
- 变量名由字母(a-z,A-Z)、数字(0-9)、下划线(_)和句点(.)
- 变量名的的第一个字符只能为字母(a-z,A-Z)或句点(.),若变量名的第一个字符为句点(.),那么变量名的第二个字符不能为数字(0-9)
- 变量名区分大小写,a和A是不同的变量
- 变量名不能为R中的保留字符(如if,else等)
R中的数据类型
数值型(Numeric)
- 双精度(Double)
默认情况下,R中的所有数字型数据都是双精度浮点数
以下均为数值型的数据类型:
1.32
10
# 科学计数法
1.25e5
1.23e-3
# 正无穷
Inf
# 负无穷
-Inf
# 非数字
NaN
可以使用typeof()函数检查数据的数据类型
typeof(1.32)
# "double"
typeof(10)
# "double"
typeof(1.25e5)
# "double"
typeof(1.23e-3)
# "double"
typeof(Inf)
# "double"
typeof(-Inf)
# "double"
typeof(NaN)
# "double"
- 整数(Integer)
要将双精度的数据转换变整数数据,只需在整数后加上字母L即可
typeof(10L)
# "integer"
复数型(Complex)
复数以a + bi的形式表示,其中a和b均为实数,a为实部,b为虚部,i为虚数单位
typeof(1+0.5i)
# "complex"
可以使用Re()函数获取复数的实部
Re(1+0.5i)
# 1
可以使用Im()函数获取复数的虚部
Im(1+0.5i)
# 0.5
可以使用Mod()获取复数的摸
Mod(1+0.5i)
# 1.118034
可以使用Conj()获取复数的共轭复数
Conj(1+0.5i)
# 1-0.5i
字符型(Character)
以双引号(“”)或单引号(‘’)形式出现的数据,均为字符型数据
typeof("1")
# "character"
typeof("3.5")
# "character"
typeof("TRUE")
# "character"
typeof("ABC")
# "character"
逻辑型(Logical)
在R中逻辑型数据有TRUE(真)、FALSE(假)和NA(缺失),TRUE可以简写为T,FALSE可以简写为F
typeof(TRUE)
# "logical"
typeof(T)
# "logical"
typeof(FALSE)
# "logical"
typeof(F)
# "logical"
typeof(NA)
# "logical"
原始型(Raw)
原始型数据储存着原始字节,它是一种非常特殊的数据类型
可以使用charToRaw()函数将字符串转换为原始字节,原始字节以十六进制的形式显示
charToRaw("1")
# 31
charToRaw("A")
# 41
charToRaw("+")
# 2b
# \t表示制表符
charToRaw("\t")
# 09
# \n表示回车符
a <- charToRaw("\n")
a
# 0a
typeof(a)
# raw
可以使用intToBits()函数将整数转换为原始字节
b <- intToBits(1)
typeof(b)
# raw
数据类型的检查及不同数据类型之间的相互转化
可以使用下表中的函数来检查数据类型以及对不同数据类型进行转换
类型 | 检查数据类型的函数 | 转化数据类型的函数 |
---|---|---|
Numeric | is.numeric() | as.numeric() |
Integer | is.integer() | as.integer() |
Double | is.double() | as.double() |
Character | is.character() | as.character() |
Boolean | is.logical() | as.logical() |
Raw | is.raw() | as.raw() |
注意:不相容的数据类型是无法相互转换的,例如:字符串"abc",是无法转换成数值型数据