R-基础测试(3)——对象的基本操作
R通过对象来运行,这些对象通过名字、内容和属性(数据类型)来刻画。所有的对象都有2个内在的属性:类型和长度。
1. 对象类型:类型是对象元素的基本种类,共有4种:
- 数值型(整型、单精度实型、双精度实型)
- 字符型
- 复数型
- 逻辑型(TRUE/FALSE/NA)
2. 对象长度:长度是对象中元素的数目。
对象的类型和长度可以分别通过函数mode()和length()得到。例如:
> x <- 1;y <-1i;z <- TRUE;q<-'woca';
> mode(x);mode(y);mode(z);mode(q);
[1] "numeric"
[1] "complex"
[1] "logical"
[1] "character"
> length(x);length(y);length(z);length(q);
[1] 1
[1] 1
[1] 1
[1] 1
3. 特殊数值
R通过Inf表示正无穷的数值,-Inf表示负无穷的数值,NaN表示非数值。
> a=100**200
> a
[1] Inf
> b=-100**200
> b
[1] -Inf
> c=0/0
> c
[1] NaN
> mode(a)
[1] "numeric"
> mode(b)
[1] "numeric"
> mode(c)
[1] "numeric"
4. 特殊字符串
字符串放在单引号或双引号中。如果字符串里有单引号或双引号,可以使用“\”来转义。
> d="wo ca 'yct'"
> d
[1] "wo ca 'yct'"
> cat(d)
wo ca 'yct'
> e="wo ca 'yct' & \"tianyc\""
> e
[1] "wo ca 'yct' & \"tianyc\""
> cat(e)
wo ca 'yct' & "tianyc"
5. 对象的查看与删除
5.1 前面我们定义了好多对象,可以通过 ls() 函数、objects() 函数,或 ls.str() 函数来查看一下:
> ls() #查看所有对象
[1] "a" "b" "c" "d" "e" "q" "x" "y" "z"
> objects()
[1] "a" "b" "c" "d" "e" "q" "x" "y" "z"
可以进行模糊查看,再定义两个对象:
> aa='xjbu'
> cba='wocacaca'
> ls(pat='a') #查看所有带有字符串‘a'的对象
[1] "a" "aa" "cba"
> ls(pat='^a') #查看所有以字符串‘a’开头的对象
[1] "a" "aa"
> ls.str() # 可以查看到更详细的信息
a : num Inf
aa : chr "xjbu"
b : num -Inf
c : num NaN
cba : chr "wocacaca"
d : chr "wo ca 'yct'"
e : chr "wo ca 'yct' & \"tianyc\""
q : chr "woca"
x : num 1
y : cplx 0+1i
z : logi TRUE
> ls.str(pat='^a') #也可以使用pat参数
a : num Inf
aa : chr "xjbu"
5.2 可以通过 rm() 函数来删除已有的对象。
> ls()
[1] "a" "aa" "b" "c" "cba" "d" "e" "q" "x" "y" "z"
> rm(a) #删除1个对象
> ls()
[1] "aa" "b" "c" "cba" "d" "e" "q" "x" "y" "z"
> rm(b,c,d) #删除多个对象
> ls()
[1] "aa" "cba" "e" "q" "x" "y" "z"
> rm(list=ls(pat='a')) #删除名称带有字符串‘a'的所有对象
> ls()
[1] "e" "q" "x" "y" "z"
> rm(list=ls()) #删除所有对象
> ls()
character(0)
6. 需要注意的地方
#6.1 R是区分大小写的,所以x和X是2个对象:
> x='wo'
> X='ca'
> ls()
[1] "x" "X"
# 6.2 对象的命名不能与R的预设对象冲突,否则会提示错误:
> else='xjbU'
错误: 意外的'else'在"else"里
R的预设对象列表如下:
break
else
for
function
if
TRUE
in
next
repeat
return
while
FALSE