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
35
demandé sur Milktrader 2011-03-07 06:20:57

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"
25
répondu Noah 2011-03-07 03:33:55

Juste essayer noquote(a)

noquote("un")

[1]

58
répondu AlexArgus 2014-12-12 05:06:49

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.

22
répondu Allan Engelhardt 2011-03-07 10:14:21

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
16
répondu Spacedman 2011-03-07 09:42:49

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
4
répondu Roman Luštrik 2011-03-07 07:46:18

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")
}
3
répondu Randall Goodwin 2011-05-14 10:59:55

Si:

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

Vous pouvez:

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

Votre résultat devrait être:

[1] one

3
répondu Alex Poma 2016-06-24 00:59:58

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 
1
répondu schenken 2014-03-06 15:08:45