web-dev-qa-db-ja.com

Rの文字ベクトルから引用符を削除する

文字ベクトルがあるとします:

char <- c("one", "two", "three")

インデックス値を参照すると、次のものが得られます。

> char[1]
[1] "one"

以下を取得するために、戻り値から引用符を取り除くにはどうすればよいですか?

[1] one
42
Milktrader

as.name(char[1])は動作しますが、なぜこれを本当にしたいのかはわかりませんが、たとえば、引用符はpasteに引き継がれません:

> paste("I am counting to", char[1], char[2], char[3])
[1] "I am counting to one two three"
27
Noah

Noquote(a)を試してください

noquote( "a")

[1] a

76
AlexArgus

戻り値には引用符はありません。値を表示するときのprint()からのデフォルト出力にのみあります。試して

> print(char[1], quote=FALSE)
[1] one

または

> cat(char[1], "\n")
one

引用符なしで値を表示します。

25

Quantmodの「シンボル」(ある金融物事のコードに関連する用語)とRの「タイプ」であるRの「シンボル」を混同しています。

あなたは言った:

Quantmod :: getSymbols()に渡すストックシンボルの文字ベクトルがあり、関数は引用符なしでシンボルを環境に返します

よくほとんど。指定された環境でそれらの名前のオブジェクトを作成します。あなたがやりたいと思うのは、名前から環境から物を取り出すことです。そのためには、「get」が必要です。デフォルト環境で動作するサンプルコードを以下に示します。

getSymbols( 'F'、src = 'yahoo'、return.class = 'ts')[1] "F"

あなたが望むものの文字のベクトルを持っているので:

> z="F"
> z
[1] "F"

そして魔法:

> summary(get(z))
     F.Open           F.High           F.Low           F.Close      
 Min.   : 1.310   Min.   : 1.550   Min.   : 1.010   Min.   : 1.260  
 1st Qu.: 5.895   1st Qu.: 6.020   1st Qu.: 5.705   1st Qu.: 5.885  
 Median : 7.950   Median : 8.030   Median : 7.800   Median : 7.920  
 Mean   : 8.358   Mean   : 8.495   Mean   : 8.178   Mean   : 8.332  
 3rd Qu.:11.210   3rd Qu.:11.400   3rd Qu.:11.000   3rd Qu.:11.180  
 Max.   :18.810   Max.   :18.970   Max.   :18.610   Max.   :18.790  

そして、あなたが私を信じないなら:

> identical(F,get(z))
[1] TRUE
16
Spacedman

私は推測しています、これはあなたが達成しようとしているものの球場にありますか?

> a <- "a"
> a
[1] "a" # quote yes
> as.factor(a)
[1] a #quote no
4
Roman Luštrik

次の場合:

> char<-c("one", "two", "three")

あなたはできる:

> print(char[1],quote = FALSE)

結果は次のようになります。

[1] one

4
Alex Poma

元のポスターに非常によく似たものを試していたと思います。チャート内の名前は継承されませんでしたが、get()が機能しました。ここに私のために働いたコードがあります。

#install it if you dont have it
library(quantmod)

# a list of stock tickers
myStocks <- c("INTC", "AAPL", "GOOG", "LTD")

# get some stock prices from default service
getSymbols(myStocks)

# to pause in between plots
par(ask=TRUE)

# plot all symbols
for (i in 1:length(myStocks)) {
    chartSeries(get(myStocks[i]), subset="last 26 weeks")
}
3
Randall Goodwin

最も簡単な方法は次のとおりです。

> a = "some string"
> write(a, stdout())  # Can specify stderr() also.
some string

エラー処理の印刷を行っている場合、stderrに印刷するオプションを提供します。

nump関数:)

> nump <- function(x) print(formatC(x, format="fg", big.mark=","), quote=FALSE)

正解:

x <-1234567890123456

> nump(x)

[1] 1,234,567,890,123,456 
1
schenken

noquotepasteを組み合わせたものを次に示します。

noquote(paste("Argument is of length zero",sQuote("!"),"and",dQuote("double")))


#[1] Argument is of length zero ‘!’ and “double”
0
NelsonGon