r通過物件來執行,這些物件通過名字、內容和屬性(資料型別)來刻畫。所有的物件都有2個內在的屬性:型別和長度。
1. 物件型別:型別是物件元素的基本種類,共有4種:
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
3物件的共享
作用 將當前執行緒對volatile的改變立即通知給其他執行緒 保證了volatile變數對執行緒的可見性 volatile是一種比synchronizyed稍弱的同步機制 對可見性的影響 volatile變數對可見性的影響比volatile變數本身更為重要。當執行緒a首先寫入乙個volatile變...
js物件4 物件的操作
使用typeof 方法 function isobject test else 原理 該方法傳入乙個變數,返回該變數型別所對應的字串 string number boolean undefined object null object function 對於null 陣列和物件,一律返回 objec...
C 基礎3(物件以及友元)
引數個數不定,可以是任意多。可變引數va int sum int num,va end vp return sum class student 需要在外部進行賦值 使用 int student tag 11 void main class student 會報錯 限制this關鍵字 不能對類的屬性進...