25

Rでは、最初にそのベクトルを変数名に割り当てずに、ベクトルのコンポーネントに名前を割り当てることは可能ですか?通常の方法は明らかに次のとおりです。

z <- 1:3
names(z) <- c("a", "b", "c") #normal way
names(1:3) <- c("a", "b", "c") #throws an error

2番目の方法は、「名前のエラー(1:3)<-c( "a"、 "b"、 "c"):割り当てのターゲットが非言語オブジェクトに展開されます」をスローします。

ドキュメントによると、式は次のように評価されます

 z <- "names<-"(z,
     "[<-"(names(z), 3, "c2"))’.

だからショックは機能しません、私はただ回避策があるかどうか疑問に思っています。

理想的には、次のようなものがあると便利です。

names(z <- 1:3) <- c("a", "b", "c")
> z
a b c 
1 2 3 

それを2つの異なる行に配置するのはスペースの無駄のように思えます。

4

2 に答える 2

45

setNames()あなたが提案した理想よりもさらにクリーン/クリアに見えるを使用するのはどうですか?

z <- setNames(1:3, c("a", "b", "c"))
# z
# a b c 
# 1 2 3 
于 2012-08-02T19:47:54.550 に答える