> x=c(1,2,3,4,5)
> x1=list(n1=1,n2=2,n3=x)
> is.vector(x1)
[1] TRUE爲什麼對象是矢量?
> is.list(x1)
[1] TRUE
爲什麼is.vector(X1)=真?我無法理解。
> x=c(1,2,3,4,5)
> x1=list(n1=1,n2=2,n3=x)
> is.vector(x1)
[1] TRUE爲什麼對象是矢量?
> is.list(x1)
[1] TRUE
爲什麼is.vector(X1)=真?我無法理解。
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的一個實施方式類似。
> is.atomic(x1)
[1] FALSE
從,列表是通用的矢量,但不是原子矢量。
從?is.vector
如果mode =「any」,is.vector可能爲原子模式,列表和表達式返回TRUE。
可以指定mode
,如果你不想做is.vector
返回TRUE
爲list
> is.vector(x1, mode='numeric')
[1] FALSE
> is.vector(x, mode='numeric')
[1] TRUE
正如預期的那樣,非? – Ryogi 2012-07-23 23:40:01