R语言 显式强制

R语言 显式强制

将一个对象从一种类型的类强制到另一种类型的类被称为 显式强制。 它是通过一些类似于基函数的函数实现的。但它们与基函数不同,因为它们不是通用的,因此不会调用S3类方法进行转换。

转换、强制和铸造之间的区别

通常情况下,凡是隐式转换的都被称为coercion,如果显式转换则被称为cast。转换意味着两种类型–强制和铸造。

明确的强制转换为字符

有两个函数可以做到这一点: as.character()as.string()。

如果v是一个需要转换为字符的向量,那么它可以这样转换。

  • as.character(v, encoding = NULL)
  • as.string(v, encoding = NULL)

这里编码参数通知R编译器关于向量的编码,并帮助内部管理字符和字符串向量。

# Creating a list
x<-c(0, 1, 0, 3)
 
# Converting it to character type
as.character(x)
R

输出

[1] "0" "1" "0" "3"
R

对数字和逻辑的显式强制执行

它们都是只有一个参数的*函数,也就是一个要转换的向量。

函数 描述
as.logical 将值转换为逻辑类型。 如果有0,那么它将被转换为FALSE。任何其他的值都被转换为 “真”。
as.integer 将对象转换为整数类型
as.double 将对象转换为双精度类型
as.complex 将对象转换为复数类型
as.list 它只接受字典类型或矢量作为参数的输入参数。
# Creating a list
x<-c(0, 1, 0, 3)
 
# Checking its class
class(x)
 
# Converting it to integer type
as.numeric(x)
 
# Converting it to double type
as.double(x)
 
# Converting it to logical type
as.logical(x)
 
# Converting it to a list
as.list(x)
 
# Converting it to complex numbers
as.complex(x)
R

输出

[1] "numeric"
[1] 0 1 0 3
[1] 0 1 0 3
[1] FALSE  TRUE FALSE  TRUE
[[1]]
[1] 0

[[2]]
[1] 1

[[3]]
[1] 0

[[4]]
[1] 3

[1] 0+0i 1+0i 0+0i 3+0i
R

产生NAs

如果R不能决定胁迫某个对象的方式,那么在显式胁迫过程中会产生NA。

# Creating a list
x<-c("q", "w", "c")
as.numeric(x)
as.logical(x)
R

输出

[1] NA NA NA
Warning message:
NAs introduced by coercion 
[1] NA NA NA
R

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册