Supprimer les guillemets d'un vecteur de caractères dans R
supposons que vous ayez un vecteur de caractères:
char <- c("one", "two", "three")
lorsque vous faites référence à une valeur d'indice, 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
8 réponses
as.name(char[1])
va fonctionner, bien que je ne suis pas sûr pourquoi vous voulez vraiment faire cela -- les citations ne seront pas reportées dans un paste
par exemple:
> paste("I am counting to", char[1], char[2], char[3])
[1] "I am counting to one two three"
il n'y a pas de guillemets dans la valeur de retour, seulement dans la sortie par défaut de print() lorsque vous affichez la valeur. Essayez
> print(char[1], quote=FALSE)
[1] one
ou
> cat(char[1], "\n")
one
voir la valeur sans les guillemets.
vous confondez le "symbole" de quantmod (un terme relatif à un code pour un truc financier) avec le "symbole" de R, qui est un "type" dans R.
Vous avez dit:
j'ai un vecteur de caractère de stock symboles auxquels je passe quantmod:: getSymbols () et le la fonction renvoie le symbole au environnement sans les guillemets
enfin presque. Ce qu'il fait est de créer des objets avec les noms dans l'environnement. Ce Que Je pensez que vous voulez faire est de sortir les choses de l'environnement par nom. Et pour cela vous avez besoin 'get'. Voici comment, exemple de code, travailler dans l'environnement par défaut:
getSymbols('F'src='yahoo',retour.classe= '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
je devine juste, est-ce dans le parc de balle de ce que vous essayez d'atteindre?
> 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. l'EEG() 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 nump:)
> nump <- function(x) print(formatC(x, format="fg", big.mark=","), quote=FALSE)
réponse correcte:
x < - 1234567890123456
> nump(x)
[1] 1,234,567,890,123,456