R-检查和更改类+检查变量+工作区

1. 检查和更改类

交互方式检查变量: class函数
脚本方式测试对象类型: is函数

if(!is(x, "some_class"))
{
	# 采取某些纠正措施
}

大部分的类都有自己的is.*函数,直接调用它们会更加高效
assertive包中有更多的is函数

is.character("red lorry, yellow lorry")
## [1] TRUE
is.logical(FALSE)
## [1] TRUE
is.list(list(a=1, b=2))
## [1] TRUE

# 以下函数可以查看base包中所有的is函数
ls(pattern="^is", baseenv())

转型(casting) 改变一个对象的类型
大部分的is*函数都有与之对应的as*函数

y <- c(2, 12, 343, 34997)
as(y, "data.frame") # 这会报错
as.data.frame(y) # 这个可以正常运行

还有一个不推荐的用法:直接给对象分配一个新的类以改变其类型

x <- "123.456"
class(x) <- "numeric"

R能打印到小数点后第几位取决于R的设置,使用option(digits=n)来修改全局默认选项

2. 检查变量

R隐式调用了对象的print方法,所以当在控制台输入一个运算或变量的时候,结果会被打印出来

不过对于内循环或函数而言,自动打印功能不起作用,必须显式地调用print

大部分print函数的实现建立在调用底层的cat函数上

summary函数 为不同数据类型提供汇总信息
类别向量和逻辑向量将根据每个值的计算进行汇总
多维对象、矩阵、数据框一样,都是通过列来汇总

num <- runif(30)
summary(num)
#   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## 0.01587 0.27546 0.43051 0.41872 0.50256 0.96900 

letters为内置常数 a-z
LETTERS A-Z

fac <- factor(sample(letters[1:5], 30, replace=TRUE))
summary(fac)
## a b c d e 
## 5 7 5 6 7 

bool <- sample(c(TRUE, FALSE, NA), 30, replace=TRUE)
summary(bool)
#   Mode   FALSE    TRUE    NA's 
## logical      11       6      13 

dfr <- data.frame(num, fac, bool)
head(dfr)
summary(dfr)
##      num          fac      bool        
## Min.   :0.01587   a:5   Mode :logical  
## 1st Qu.:0.27546   b:7   FALSE:11       
## Median :0.43051   c:5   TRUE :6        
## Mean   :0.41872   d:6   NA's :13       
## 3rd Qu.:0.50256   e:7                  
## Max.   :0.96900  

str函数能显示对象的结构,对数据框和嵌套列表很有用

str(num)
##  num [1:30] 0.662 0.485 0.542 0.416 0.447 ...
str(dfr)
## 'data.frame':	30 obs. of  3 variables:
## $ num : num  0.662 0.485 0.542 0.416 0.447 ...
## $ fac : Factor w/ 5 levels "a","b","c","d",..: 2 3 4 1 3 1 3 5 5 5 ...
## $ bool: logi  NA NA TRUE NA FALSE FALSE ...

每个类都有自己的打印方法,以此控制如何显示到控制台,有时这种打印会模糊其内部结构
unclass函数显示变量是如何构建的

unclass(fac)
## [1] 2 3 4 1 3 1 3 5 5 5 2 4 2 5 2 5 4 3 2 5 1 5 4 2 4 1 3 2 1 4
## attr(,"levels")
## [1] "a" "b" "c" "d" "e"

attribute函数能显示当前对象的所有属性列表

attributes(fac)
## $levels
## [1] "a" "b" "c" "d" "e"

## $class
## [1] "factor"

View函数会把变量(只读的)显示为电子表格
edit函数和fix函数允许手动更改数值

View(dfr) # 不允许更改
new_dfr <- edit(dfr) # 更改将保存于new_dfr
fix(dfr) # 更改将保存于dfr

结合View函数和head函数来查看数据框的前几行

View(head(dfr, 50)) # 查看前50行

3. 工作区

ls函数 列出现有变量的名称
默认下,以.开头的是隐藏文件

ls(pattern="ea")
## [1] "peach" "pear"

ls.str函数查看变量的结构 在调试会话中很有用
browseEnv 在网页浏览器中以HTML页面的格式显示其输出
rm函数 删除变量以清理区间

rm(peach, plum, pear)
rm(list=ls()) # 删除所有变量

你可能感兴趣的:(r语言,开发语言)