2012-07-22 75 views

回答

1

R中的向量是有序的東西集合。東西,在這種情況下是

> mode(x1) 
[1] "list" 
從幫助文件

如果x具有比其他名稱沒有屬性指定的模式的載體is.vector返回TRUE

> attributes(x1) 
$names 
[1] "n1" "n2" "n3" 

如果我們給X1另外一個屬性:

levels(x1)<-1:3 

> x1 
$n1 
[1] 1 

$n2 
[1] 2 

$n3 
[1] 1 2 3 4 5 

attr(,"levels") 
[1] 1 2 3 

> is.list(x1) 
[1] TRUE 

> is.vector(x1) 
[1] FALSE 

它仍然是一個列表,但不是現在矢量

A brief history of S「S中的基本數據結構是一個向量雖然S對象的屬性概念直到1988年版本纔得到明確實施,但從開始S開始 認識到主要向量的數據通常伴隨着其他值,這些值描述了數據的特殊屬性。例如,一個矩陣只是一個數據矢量以及一個名爲Dim的輔助矢量,它告訴維度(行數和列數)。同樣,時間序列 有一個Tsp屬性來說明每個週期的開始時間,結束時間和觀測次數。這些具有屬性矢量 被稱爲矢量的結構,這與大多數其他系統區分S上。」

推測它是在R,它是如此這些載體的結構不被指定爲矢量S的一個實施方式類似。

2
> is.atomic(x1) 
[1] FALSE 

從​​,列表是通用的矢量,但不是原子矢量

+0

正如預期的那樣,非? – Ryogi 2012-07-23 23:40:01

3

?is.vector

如果mode =「any」,is.vector可能爲原子模式,列表和表達式返回TRUE。

可以指定mode,如果你不想做is.vector返回TRUElist

> is.vector(x1, mode='numeric') 
[1] FALSE 

> is.vector(x, mode='numeric') 
[1] TRUE