1

重複の可能性:
オブジェクトがベクトルである理由

私のコードを見てください:

> x=function(z){z+1}  
> y=list(n1=1,n2="qwe",n3=TRUE,n4=x)  
> is.vector(y)

[1] TRUE  

なぜyベクトルなのですか?n1数値、n2文字、n3論理、n4関数です。

それらは異なるのに、なぜyベクトルなのですか? 確かyにリストしかありませんか?

> data
name sex age height
1 x1 F 18 162
2 x2 M 19 170
3 x3 M 21 178
4 x4 F 22 166
5 x5 F 23 165
> data[1,]
name sex age height
1 x1 F 18 162
> is.vector(data[1,])
[1] FALSE

ベクトルで混乱しています。なぜここで data[1,] をベクトルにできないのですか?

4

2 に答える 2

10

ジェネリックベクトルlistを作成するために使用しています。リストにはさまざまな種類のオブジェクトを含めることができ、それ自体がベクトルです。

したがってis.vector、正しい答えが得られます。詳細については、こちらをご覧ください。

さらに、入力fix(y)すると構造が表示されます。

structure(
 list(
  n1 = 1,
  n2 = "qwe",
  n3 = TRUE,
  n4 = function(z){z+1}
 ),
 .Names = c("n1", "n2", "n3", "n4")
)
于 2012-07-23T13:11:24.543 に答える
4

y リストです

> is.list(y)
[1] TRUE

の詳細セクションの 2 番目の段落で説明されているように、リストはベクトルであるため、混乱しています?is.vector。同じ文は、式に対してis.vectorも返されると述べています。TRUE

> is.vector(as.expression(y))
[1] TRUE
于 2012-07-23T13:28:47.757 に答える