除了使用is.*()
函数,我们也可以使用class()
或typeof()
函数来实现类型的识别。
接下来用例子展示class()
和typeof()
作用在不同类型的对象上,它们输出信息的不同之处,我们用str()
展示对象的结构。
对于数值向量:
x <- c(1, 2, 3)
class(x)
## [1] "numeric"
typeof(x)
## [1] "double"
str(x)
## num [1:3] 1 2 3
对于整数向量:
x <- 1:3
class(x)
## [1] "integer"
typeof(x)
## [1] "integer"
str(x)
## int [1:3] 1 2 3
对于字符向量:
x <- c("a", "b", "c")
class(x)
## [1] "character"
typeof(x)
## [1] "character"
str(x)
## chr [1:3] "a" "b" "c"
对于列表:
x <- list(a = c(1, 2), b = c(TRUE, FALSE))
class(x)
## [1] "list"
typeof(x)
## [1] "list"
str(x)
## List of 2
## $ a: num [1:2] 1 2
## $ b: logi [1:2] TRUE FALSE
对于数据框:
x <- data.frame(a = c(1, 2), b = c(TRUE, FALSE))
class(x)
## [1] "data.frame"
typeof(x)
## [1] "list"
str(x)
## 'data.frame': 2 obs. of 2 variables:
## $ a: num 1 2
## $ b: logi TRUE FALSE
可以看到,typeof()返回对象的低级内部类型,class()返回对象的高级类。data.frame本质上就是具有等长成分的list。
在进行向量化计算是不少函数都非常有用,比如&
、|
、ifelse()
等。
在取最大最小值方面,对应于普通的max()
与min()
函数,我们可以使用pmax()
和pmin()
求取平行最大、最小值。
网友评论