Supposons que vous ayez un vecteur de caractère:
char <- c("one", "two", "three")
Lorsque vous faites référence à une valeur d'index, vous obtenez ce qui suit:
> char[1]
[1] "one"
Comment pouvez-vous enlever les guillemets de la valeur de retour pour obtenir ce qui suit?
[1] one
as.name(char[1])
fonctionnera, bien que je ne sois pas sûr de la raison pour laquelle vous voulez vraiment faire cela - les citations ne seront pas reportées dans une paste
par exemple:
> paste("I am counting to", char[1], char[2], char[3])
[1] "I am counting to one two three"
Juste essayer noquote (a)
noquote ("a")
[1] a
Il n'y a pas de guillemets dans la valeur de retour, uniquement dans la sortie par défaut de print () lorsque vous affichez la valeur. Essayer
> print(char[1], quote=FALSE)
[1] one
ou
> cat(char[1], "\n")
one
pour voir la valeur sans guillemets.
Vous confondez le "symbole" de quantmod (terme relatif à un code pour une chose financière) avec le "symbole" de R, qui est un "type" dans R.
Vous avez dit:
J'ai un vecteur de caractère de stock symboles que je passe à quantmod :: getSymbols () et le fonction renvoie le symbole à la environnement sans les citations
Bien presque. Cela crée des objets avec ces noms dans l'environnement spécifié. Ce que je pense que vous voulez faire, c'est de nommer les choses d'un environnement. Et pour cela, vous devez «obtenir». Voici comment, exemple de code, travaillant dans l'environnement par défaut:
getSymbols ('F', src = 'yahoo', return.class = 'ts') [1] "F"
donc vous avez un vecteur de caractères des choses que vous voulez:
> z="F"
> z
[1] "F"
et puis la magie:
> 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
et si vous ne me croyez pas:
> identical(F,get(z))
[1] TRUE
J'imagine que c'est ce que vous essayez d'accomplir?
> a <- "a"
> a
[1] "a" # quote yes
> as.factor(a)
[1] a #quote no
Je pense que j'essayais quelque chose de très similaire à l'affiche originale. le get () a fonctionné pour moi, bien que le nom à l'intérieur du graphique n'ait pas été hérité. Voici le code qui a fonctionné pour moi.
#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")
}
Si:
> char<-c("one", "two", "three")
Vous pouvez:
> print(char[1],quote = FALSE)
Votre résultat devrait être:
[1] one
fonction numpy :)
_[LA MORUE]_
bonne réponse:
> nump <- function(x) print(formatC(x, format="fg", big.mark=","), quote=FALSE)
> nump(x)
[1] 1,234,567,890,123,456
Le moyen le plus simple est:
> a = "some string"
> write(a, stdout()) # Can specify stderr() also.
some string
Vous permet d'imprimer sur stderr
si vous effectuez une impression de gestion des erreurs.
En voici un qui combine noquote
et paste
:
noquote(paste("Argument is of length zero",sQuote("!"),"and",dQuote("double")))
#[1] Argument is of length zero ‘!’ and “double”