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

posted @ 2013-02-27 15:42  醇酒醉影  阅读(552)  评论(0编辑  收藏  举报