2017-02-17 8 views
7

私はRの初心者です。基本的な質問をする前に謝罪していますが、私はどこでもGoogleの回答を見つけることができませんでした。質問は基本的なので、正しくを検索する方法を知っている..:D)element-wise operations in R

をだから私はRで次の操作を実行した場合:

v = c(50, 25) 
names(v) = c("First", "Last") 
v["First"]/v["Last"] 

私のように出力を得る:それはということですなぜ

First 
    2 

名前に "First"が出力され、どのようにそれを取り除く?

+2

「unname(v ["First"]/v ["Last"]) 'です。 –

+0

http://stackoverflow.com/questions/13316082/r-suppress-names-when-displaying-or-printing-a-named-vectorの重複している可能性があります(これには多数のダストがあります) – akrun

+0

FYI http:// stackoverflow.com/questions/42289948/bayesfactor-package-r-two-different-output –

答えて

8

help("Extract")から、これは

サブセット(空の指数による除く)であるnamesdimdimnamesを除くすべての属性をドロップします。

インデックスの通常の形式は、[です。 は、namesをドロップする単一の要素を選択するために使用することができ、[は、例えば、c(abc = 123)[1]にそれらを保持します。

単一要素を選択しているので、ダブルブラケットインデックス[[に切り替えることができ、名前は削除されます。その名のよう

v[["First"]]/v[["Last"]] 
# [1] 2 

シングルブラケットのインデックスを使用するときに保存され、それは常に(少なくとも/オペレータとの)最初だように、それが見えます。さらなる説明のためにCソースを掘り下げる必要があります。注文を切り替えると、結果にはまだ最初の名前が付けられます。

v["Last"]/v["First"] 
# Last 
# 0.5